Tak, XMEGA chodzi max do 3,6 V, niemniej dzięki DMA można pobrać stan portu w ciągu 1-4 taktów, co dla zegara 32 MHz przekłada się na mniej niż 160 ns, w dodatku całkowicie sprzętowo, bez udziału MCU.
Translator Google naszym przyjacielem :D BURST MODE coś jak tryb seryjny Burst mode can be specified for either the clock/calendar or the RAM registers by addressing location 31 decimal (address/command bits 1 through 5 = logic 1). Tryb seryjny można działać dla zegar/kalendarz lub rejestrów RAM poprzez adresowanie lokalizacji 31 (adres / bity polecenia...
Witajcie, dziś postanowiłem się podzielić dorobkiem w postaci oprogramowania i wiedzy na temat pewnego modułu GPS. Zegar softowy synchronizowany GPS z dodatkowym wyświetlaniem współrzędnych i prędkości no i dorzuciłem w ostatniej chwili temperaturę z DS18B20 - taki szkoleniowy programik w BASCOM (świetny przykład - gotowiec dla tych którzy chcą zrobić...
Witam. Mam taki program testowy (fragment): [syntax=basic4gl] ... Open "plik.txt" For Append As #2 Write #2 , "123" , 1 Write #2 , "321" , 2 Write #2 , "test" , 3 Close #2 Cls Lcd "zapis" Lowerline Lcd "zakonczony" Wait 2 'zapis na kartę danych Else Cls Lcd "Blad kod: " ; Card_init_error End If Do If Pinb.0 = 0 Then Open "plik.txt" For Input As #2 'otwieramy...
Nie zwykły bufor Serialin Flaga od entera może się Ci przydać by na przykład po jej ustawieniu przenieść odebrany ciąg gdzie indziej, zresetować flagę i ustawić A= "". Zamiast Case Else można by ciąg budować np po: Case 65 to 90 Wtedy do ciągu dodawane były by tylko wielkie litery lub: Case 32 to 127 - czyli wszystkie znaki podstawowe bez sterujących....
Poczytałem trochę o timerach i prescalerach i mam nadzieję że teraz napisałem obsługę timer0 bez "rażących" błędów :?: Program posiada dwa założenia: zlicza liczbę zapisanych na SD zmiennych typu word lub zlicza ilość odczytów z ADC w ciągu 1sek, wyniki wyświetla na lcd. Zmieniłem również zmienną "f" liczącą zapisy/odczyty z byte na single bo zorientowałem...
Czas transmisji bajtu po I2C przy 100kHz (Arduino tyle nie wyciąga, przynajmniej na AVR) AVR tak, Arduino nie. Sprzawdziłem organoleptycznie. Kolega sprawdzał na PCF8574? Owszem, w bibliotece dla LCD po I2C na czas transmisji do niego, rejestr predkości jest ustawiany na 400kHz, następnie przywracana poprzednia wartość. Nie pamiętam jaką ale nie było...
Witam po długiej przerwie. Informacje w wiązce może i są ale rozszyfrowanie transmisji to byłby duży problem. Przez cały ten czas udało mi się napisać prawie cały program do kompa, ale Bascom jest strasznie pamięcio-żerny no i jakoś nie kumam języka basic. Aby z ciągu znaku wciągnąć jedną literkę to się trzeba nakombinować. Więc zmieniłem troszeczkę...
Już głupieje co jest nie tak w terminalu wszystko działa prawidłowo i widzę ze wysyła komendę do kasowanie SMSa "AT+CMGD=1" Odsyłane są również stany, że przekaźnik nr 1 został włączony lub wyłączony czy alarm został aktywowany czy dezaktywowany lub zresetowany. Natomiast jak podepnę SIM800 i w programie w części dotyczącej odczytu SMS przestawię na...
Znacznie mniej pamięci zużyjesz ładując dane w procedurze DATA. Przeznaczenie: Służy do umieszczania danych, odczytywanych później instrukcją READ w trakcie działania programu. Składnia: DATA wartość1 [, wartośćn] gdzie: wartośćstała numeryczna lub tekstowa. Opis: Instrukcja wykorzystywana jest do definiowania ciągu danych, umieszczonych w pamięci kodu...
Witam Mam program budzika, który jako dodatkową atrakcję miał mieć możliwość mówienie czasu na żądanie i odtwarzanie oprócz buzzera utworu jako alarmu. Atmega steruje przez jedno SPI programowe układem MAX7219, a przez konwerter poziomów i drugie SPI programowe odtwarzaczem WTV020SD. O ile sam WVT020SD + PCF8563 ( wyjście CLK do INT1 ) działają dobrze,...
WITAM :D Wiem, że różnego rodzaju zegarków było już wiele na tym forum, jednak ja chciałbym przedstawić swój ze względu na kilka ciekawych rozwiązań i funkcji, które inne zegarki z pewnością nie posiadają ;) Zacznę może od hardware'u a potem opiszę, które z urządzeń wykorzystuje napisany przeze mnie program. [Program będzie jeszcze rozbudowywany, dlatego...
Ma się dobrze jeśli ma odbierać dane z bufora. Jeśli Twoje Print Komenda ; Chr(13); zmieniłbyś na Print Komenda To z powodzeniem mógłbyś odbierać w przerwaniu Pozostało by ci tylko ustawić: Config Input = Crlf , Echo = Crlf Config Serialin = Buffered , Size = 80 , Bytematch = 13 a przy odbieraniu: Input Odczyt Noecho
Jak chcesz wpisywać liczbę z klawiatury to powinieneś uwzględniać wagę poszczególnych składników tej liczby. Pierwsza cyfra z trzech to, waga=100 zatem key*100, przy następnej cyfrze waga=10 zatem key*10, a na koniec samo key bo waga=1 i operacja mnożenia jest zbędna, jak to wszystko zsumujesz to otrzymasz ostateczną liczbę. Np. liczba 467 to 4*100+6*10+7....
Spróbuję zmienić czas konwersji, DS zasilany standardowo DQ podciągnięte przez 4,7K W dalszym ciągu to samo 170 stopni C.
Ojojoj. Gotowego programu nikt Ci nie napisze. Pomyśl trochę... Na pewno trzeba odmierzyć np. sekundę i w ciągu tej sekundy zliczyć impulsy z czujnika obrotów.
1. odczyty są od zera do jakichś krzaków Przed każdą instrukcją związaną z komunikacją 1-wire musisz wyłączyć wszystkie przerwania ponieważ 1-wire będzie się rozjeżdżał i będą wychodzić głupoty. 2. nadal menu z wyświetlaniem temp strasznie mruga Nie ma się co dziwić, że mruga jeżeli masz tak to napisane: [syntax=basic4gl] Debounce S1 , 0 , Zmiana ,...
szczerze mówiąc to nigdy się jeszcze nie bawiłem z avr studio ponieważ nie programuje w C tylko w bascomie Nie musisz programować w C aby użyc AVR Studio do programowania. Tak jak wspomniałem poprzednio, analogicznie do Bascom, nadpisujesz odczytaną wartość aktualnych fuse bytes nowymi wartościami i naciskasz w dolnej części okna 'Program'. Podobnie,...
Niestety nie wiem. Jakiego polecenia używasz do kasowania linii ? Co do mojego problemu, to poszedłem trochę na łatwiznę - dodałem trzy linijki kodu i teraz zapisuje w plikach dziennych, czyli każdy dzień to nowy plik. Przy starcie przy starcie sprawdza czy flaga_odczyt = 1 ( a jest równa 1, bo zapisana w warunkach początkowych ) wykonuje odczyt, ustawia...
Jeśli chcesz zrobić wait na liczniku to możesz uzyskać dwa efekty. W obu ustawiasz w przerwaniu flagę. Pierwszy do instrukcja czekaj aż flaga będzie ustawiona wykonuj dalszy ciąg programu loop Generalnie w takim rozwiązaniu nie ma sensku dawać timera. Druga opcja do instrukcja if(flaga ustawiona) reszta kodu loop Oczywiście drugie rozwiązanie...
ile razy w ciągu tych 10 sek. chcesz odczytywać napięcie? czy 10 sek musi być odmierzone b. dokładnie? czy sygnał odczytywany ma charakter ciągły , czyli może płynnie narastać od 0 V do 0,5 V i następnie zmniejszać swoją wartość do np 0,3 V i czy to też traktujesz jak zmianę stanu czy nie? Czy może wartość napięcia będzie zmieniać się skokowo z zakresu...
Witam Obsługuję czujnik DS18B20 w Bascomie. Czy czas pomiędzy kolejnymi poleceniami, tj. 1wreset , potem 1wwrite &H55 , potem 1wwrite &HCC ... itd. może być dowolnie długi, przykładowo -np 6 minut; 5 godzin; 10godzin czy też 10dni .... ? Oczywiście wysyła 1 polecenie, czeka, wysyła drugie itd. do końca... Czy są ograniczenia? NIE! Te czasy (timingi)...
Dim Sc(9) As Byte 'w tej tablicy beda dane odczytane z czujnika Dim Temperatura As Integer 'tu obliczona temperatura Dim Blad_crc As Bit 'a ten bit bedzie ustawiany w razie bledu CRC odczytu '... program ... 1wreset 1wwrite &HCC 1wwrite &HBE Sc(1) = 1wread(9) 'odczytujemy wszystkie bajty z czujnika If Sc(9) = Crc8(sc(1)...
Po ustawieniu fuse bitów tak żeby uwzględnić $crystal=4000000 program w dalszym ciągu nie reaguje na nic. Mógłbyś napisać program do odczytu temperatury z DS18B20 i wyświetleniu jej na LCD tak żebym mógł sobie sprawdzić moje czujniki temperatury
Koledzy...kopiujecie kody znalezione w necie i nawet nie wiecie, że zawierają błędy. Wystarczy sięgnąć do noty katalogowej MAXa i wszystko jest jasne. Po pierwsze nie ma konieczności żadnej wstępnej inicjalizacji układu. Po ustawieniu CS w stan niski można od razu zrzucać dane SO. Wciągamy 16 bitów, z czego pierwszy jest pusty, drugi to device id, trzeci...
Szanowni Koledzy Pytanie jak w temacie czy macie jakieś doświadczenia i sugestie jeśli chodzi o odczyt kodu kreskowego skanerem i skojarzenie łańcucha cyfr przełanego przez czytnik ze zmienną np tekstową? Myslałem o instrukcji GetAtKbd ale ona zatrzymuje działanie programu dopóki w buforze nie znajdzie się znak do odczytu a dodatkowo tu chodzi o odczyt...
Ok zastosowałem instrukcje PRINTBIN,ale co dalej ?Co należy zrobić żeby zamienić to na jakieś strawne dane?: Co masz na myśli pisząc "strawne dane"? Przecież układ RFID wysyła nie ciąg znaków ASCII tylko bajty. A jak widać na zdjęciu karta się przedstawia zawsze tak samo - komunikacja jest poprawna.
Hmm , z tym rozpoczęciem programowania poprzez reset to lipna sprawa niestety. Moduły są rozsiane w róznych miejscach i właśnie dlatego założyłem ten temat. Myślałem że już może ktoś to zrobił wcześniej. Ja osobiście wolałbym użyć np. watchdoga do inicjacji wgrywania oprogramowania czyli : wysłać poprzez rs485 polecenie np: firmware_1 i to polecenie...
Oczywiście masz rację. Ale błędny odczyt, czyli inny niż "0" podczas pierwszego przebiegu, pojawi się tylko wtedy gdy po resecie uC, TSOP coś odbierze w ciągu części ms, w czasie gdy porty i przerwania będą już skonfigurowane a przed , czy na samym początku pętli. Według mnie można taki przypadek pominąć. Co do 255 to dlaczego jeśli przerwanie wystąpiło...
Chyba tak jak powiedziałeś -"czas zalezny od zmierzonego napięcia" mam te wyniki w postaci 10bitowej (chyba)potem mają być 'zrobione' z nich czasy -od ~0.8ms do 3.5ms potem mają być ułożone w ciąg czasów odzdzielonych od siebie ~0.5ms logicznym zerem. Nikt nie zna sie na tym??
Sterowanie SPI prowadzić w CPOL Mode = 0, CPHA = 0, w której wysyłane są 16 bity z .mu.C do modułu: Pierwszy bit informuje moduł, jeżeli jest to (poprzez odczyt (wartość bitu 0) lub zapisać wartość bitu równa 1 ), pozostałe siedem bitów pierwszego bajtu wskazuje adres rejestru. Z drugim osiem bitów polecenia mają być przekazywane do otrzymania moduł...
Dla danej typu 'string' można użyć komendy MID zobacz manual... a czy cos takiego bedzie dzialac to nie wiem, sprawdz: Dim R As Byte , R1 As Byte , Dan As Word Dim Wyjscie As Bit For R = 0 To 15 R1 = 15 - R Wyjscie = Dan.r1 Next R
Czy "kropka" jest znakiem unikalnym? Nie ma szans na pojawienie się jej w środku treści? Wygląda to tak jakby przy następnym odczycie było jakieś przesunięcie w znakach. W żaden sposób nie synchronizujesz odczytów - użyj "kropki" jako znaku początku lub końca - szukaj jej w ciągu. Podałeś zestaw znaków, ale czy po takiej sekcji nie ma znaku CR+LF lub...
Coś się zaświeciło-wyświetlacz jest OK,programy gotowe z tego forum.Zobaczyłem ciągi przesuwających się znaków więc sądze,że wyświetlacza nie uwaliłem.Będę próbował dalej-kolejnego pająka.A tak na marginesie,myślałem,że zrobienie prostego termometru to nic trudnego,zwłaszcza,że byłem kompletnie zielony.Nawet bascoma nie umiałem użyć.Teraz zaczynam troche...
Witam Jest taka instrukcja MID. Podajesz ciąg z którego chcesz wyłuskać znak i dodatkowo pozycję, od której odczytujesz oraz ilość danych, które odczytujesz. Poczytaj o tym w helpie. -- pozdrawiam
Zawsze będzie się to sprowadzało do przesyłania pojedynczych bajtów a w przypadku programowego I2C kolejnych bitów. Tego nie przeskoczysz. Oczywiście nie ma innej możliwości jak wysyłanie danych na szynę I2C bajt po bajcie. Mimo to większość (jesli nie wszystkie) pamięci opartych o I2C ma możliwość zapisania/odczytania danych szeregowo. Jest możliwość...
proszę dodaj komentarze żebym wiedział dokładnie jak to działa, pls Wrzucilem do kompilatora i wysypal sie na tej linii: Dim Ab(6) As Byte At A Overlay "address out of bounds" A Overlay
Dziękuje koledze Xury, ten przykład z sms.bas był jak najbardziej trafny, oczywiście po drobnej modyfikacji Config Serialin = Buffered , Size = 4 Enable Interrupts Dim E As String * 4 Dim F As Byte F = 0 Declare Sub Odczyt_rs Do Call Odczyt_rs End Odczyt_rs: E = "" Do F = Inkey() Select Case F Case 0 'nic Case 13 : If E <>...
Witam. Trzeci dzień siedzę nad datasheet-em scalakiem i bascomem i w dalszym ciągu zero absolutne :( Odczytuję tylko głupoty ani śladu napięcia :( Czy komuś udało się napisać w bascomie 8051 albo AVR algorytm odczytujący napięcia z tego układu bo ja niestety się poddaję :(
Jak zwykle można na Ciebie liczyć mirekk36 Zmienne w EEPROM są mi potrzebne z dwóch powodów: aby zaoszczędzić RAM i aby w późniejszym czasie napisać sobie program dla Windows, który dałby mi możliwość edycji samego EEPROM. W eeprom chcę zapisać numery telefonów i fragmenty ciągu SMS w PDU. Następnie w zależności od sytuacji chcę składać z tych zmiennych...
Źle podchodzisz do tematu. Dopóki są to jakieś tylko zabawy w budowę termometru to sobie można pozwalać na takie błędy. Kiedy jednak od pomiaru takiej temperatury ma już zależeć praca jakiegoś urządzenia to powinno się do sprawy podejść poważniej. Po pierwsze ten uC ma trzy Timery. Może mierzyć dowolne czasy. Czy na pewno jest Ci potrzebne przerwanie...
dzieki, z tym bitem CKOPT faktycznie jest tak. Kwarc ruszył. jesli chodzi o linie uart/spi to mam ją ustawioną w stan wysoki/uart. Tak czy siak- transmisja przy odczycie rejestru "CR" jest zawsze synchroniczna, udało mi się odczytać te bity, złapałem je na oscyloskopie. bieżacy problem jest taki: nie wiem jak zapisać te dane. Jak ma wyglądać bascomowa...
Przy takim kodzie: Attiny2313 - temu raczej nic nie dolega - odbiera i wysyła: $regfile = "attiny2313.dat" $crystal = 8000000 $baud = 9600 '********************* Konfiguracja magistrali 1-Wire Config 1wire = Portd.5 '********************* Config Serialin = Buffered , Size = 10 Enable Interrupts '********************* Konfiguracja wejść i wyjść...
Jak bascomem odczytac &h00 z uarta ? Gdy napisze do aa=inkey() print cjr(aa) loop wywala ciąg zer. Procedura IsCharWaiting rowniez nie dziala na &h00 Zeby nie bylo ciagu zer, musze trzecia linijke zamienic na if aa<>0 then print chr(aa) Gdy wysylam do uarta ciag np: FF F0 A1 00 01 00 00 02 program odczyta go jako FF F0 A1 01 02. Jest jakis...
Przy odbiorze danych p rzez RS trzba znać gdzie się kończy transimtowany ciąg znaków. Są dwie metody: 1 Liczyć ilość odebranych znaków i wycinać ze stringu właściwą sekwencję np. odczyt numeru tel z SMS. 2 Na końcu trasmisji nadaje się znak specjalny np chr(13) lub chr(10) W AVR jest obsługa portu w przerwaniu więc dane są odebrane po pojawieniu się...
Jakaś masakra a nie kod. Gdzie niby masz zaimplementowany odbiór danych z UART? Jakim cudem chcesz wpisać do zmiennej String*1 (która nie może przechować nawet jednej litery, bo przechowuje tylko znak końca stringa) ciąg znaków? Najprościej kod transpondera zapisać jako tablicę 5-ciu bajtów. Potem masz tablicę z akceptowanymi transponderami (posortowanymi...
Witam Temat jest taki. Posiadam magistralę 1wire na której są zamontowane termometry DS18B20 oraz przełączniki DS2407. Pracuje na tym sterowanie ogrzewaniem w mieszkaniu. Do tej pory sterowałem nią układem na bazie Atmega168 i działało to prawidłowo. Zbudowałem następny sterownik z Atmega32 na pokładzie i zaczeły się schody. Odczyt adresów układów prawidłowa....
Witam, Piszę na Atmedze odczyt danych z BMP085 i dodatkowo zapis danych na kartę SD. Wszystko wydaje się działać poprawnie, a jednak coś jest nie tak. Do obsługi BMP085 wykorzystałem kod z tego tematu: http://www.elektroda.pl/rtvforum/topic18... Oto wykres z odebranych danych, czas pomiaru to około 10min http://obrazki.elektroda.pl/4498963800_1...
Owszem komenda jest, ale nie działa na karcie bankomatowej, przynajmniej u mnie. Co do sekwencji startowej to standardowo jest to "11" ( ";", &hB lub 01011) ale sprawdziłem sobie kilka kart i są różne znaki startowe, na skasowanej karcie bankomatowej też jest numer, ale chyba bardziej losowy, jednak niepowtarzalny i nie zaczyna się od "11" a od "12"...
Nie znam BASCOMa, więc nie podam gotowego kodu, ale wydaje mi się, że powinieneś zaraz po Instr sprawdzić, czy odpowiedni ciąg został znaleziony. NMEA to zwykle strumień kilku różnych komunikatów, powtarzanych w kółko. Jeśli akurat trafisz na coś innego niż $GPRMC to Instr nic nie znajdzie. Ja bym jeszcze dopisać coś w stylu If znak = "$" then Gps =...
Witam Obecnie walczę z odbiorem danych przez UART. Całość działa, ale mam wrażenie, że odbiór danych powinien być inaczej. Chodzi oczywiście o to, że treść odebranego SMS jest w drugiej linii i używany do tej pory kod wyświetla to trochę dziwnie. Używam trybu tekstowego i odebrane SMS'y wysyłam od razu na UART. komenda muszę dwa razy zrobić Mid. Jeszcze...
odczyt ciągu znaków odczyt ds18b20 bascom bascom odczyt ds18b20
ipconfig zmiana adres router samsung wygięty naprawa pompka spryskiwacz
pralka elektrolux wyłącza panasonic magnetowid przewijanie
Siemens Gigaset 4000 Classic – jak otworzyć obudowę słuchawki krok po kroku Sprawdzenie mechanizmu szyby bocznej lewej – diagnostyka VW, Renault, BMW, brak reakcji po wymianie przycisku