RX FIFO Buffer w żadnym wypadku nie ustawi odebranych danych z kilku modułów w kolejce. On owszem kolejkuje ale bajty a nie całe ramki. Choć to jeszcze mało ważne. Dużo ważniejsze że te kolejkowane bajty pochodzą z odbiornika. Odbiornik nie jest w stanie odebrać paru danych na raz. Musiał by mieć FIFO w sobie i kolejkować już na etapie odbierania. A...
W zasadzie to trzeba wyłączyć bufor FIFO o odbiorniku (Output and FIFO mode Command --> "fe" na 0). Do tego trzeba rodzaj filtru ustawić na OOK (Data FIlter Command --> "s0" i "s1" na 0). W nadajniku trudno powiedzieć. Pisze coś o trybie bez sybchronizacji, ale tylko drogą dedukcji można dojść że to jest właśnie tryb z wyłączonym buforem FIFO (Low Battery...
Myślałeś o tym by zatrzasnąć stan linii danych w rejestrze na zboczu i odczytać zawartość rejestru już później przez CPU. Mógłbyś dodać licznik i mala pamięć SRAM oraz bufor bo tak małego FIFO raczej nie kupisz... Ale moim zdaniem będzie droższe i większe niż dodanie prostego uC który będzie w pętli robił to czego potrzebujesz - ile teraz kosztuje najtańszy...
Najpierw musisz zdekodować warstwę fizyczną - czyli musisz mierzyć impulsy. Najlepiej by było, gdybyś to zrobił na timerze capture, mierzysz czas odstepu miedzy zboczami, i tyle... Kazdy bit po bicie wpychasz do fifo... w petli głównej masz pętlę która rozbiera tą kolejkę, i zamienia bitstream na ramki. Takie ktore mają zdefiniowany początek i koniec,...
Witam Jakoś nie widzę problemu. Po pierwsze można sobie zadeklarować zmienną tekstową, która może przechować do bodajże 255 znaków. Można sobie też zadeklarować tablicę z takimi zmiennymi i odpowiednio operować tymi danymi. Na przykład każdy nowy SMS będziesz wpisywał do pierwszej komórki w tablicy po tym jak poprzednie SMSy przesuniesz o jedną pozycję....
witam pisze pewien programik pod bascomem i potrzebuje zaimplementować w asemblerze bufor FIFO dla przychodzących danych. Napisałem pewną procedurkę, lecz nie wiem czemu często coś się w nim zamiesza. sprawdzałem go troche w debugerze ale nic nie mogę wyczaić. Oto kod procedurki zapisującej i odczytującej z bufora: Save_to_fifo: 'Const Wielkosc_bufora...
E tam, Bascom jest niekoszerny :) Rozumiem, że jakąś automatykę domową chcesz zrobić? RFM22 ma moc 17dBm, w domu spokojnie pociągnie. W dodatku sprzętowo realizuje stosunkowo wysokopoziomowe funkcje (MAC, CRC, nadawanie ramek). Akurat zaczynam tworzyć driver do niego. No i tani. Jeszcze tańszy jest RFM12, ale mniej wygodny w sterowaniu i ma mały bufor...
Jeśli masz limit ceny 60zł za dwa moduły to spokojnie w tej cenie kupisz transceiver RFM23 (Seguro). Zaleta jego jest taka, że sam tworzy ramki, ma możliwość ponownego wysłania błędnej ramki, 64-bajtowe FIFO i generalnie jest lepiej przemyślany niż wcześniejsze wersje. Oczywiście znaczenie taniej kupisz odbiornik/nadajnik innego typu... tu bym się raczej...
Witam! Obsługa przerwania trwa z reguły krócej, niż odbiór pojedyńczego bitu przez USART. Drugim zabezpieczeniem jest bufor FIFO - odbierze kolejny znak, zanim odczytasz poprzedni. Pozdrawiam!
Myślałem, że za buforowanie odpowiada: Config Serialin = Buffered , Size = 255 No nic... W takim razie zabieram się za poszukiwanie informacji odnośnie FIFO i jak to robić w Bascom-ie.
Kolejny raz widzimy to samo. Zamiast dobrać kontroler do zadania, to próbujesz na siłę dopasować zadanie do kontrolera leżącego w szufladzie. Tutaj o tyle gorzej, że nawet się nie zastanowiłeś ile zasobów potrzebujesz, tylko od razu przyjmujesz 2 albo 3(!) kontrolery do w sumie bardzo prostej aplikacji. Moim zdaniem wszystko zrobisz na jednym uC i może...
Jeśli chodzi o oszczędność czasu, to najlepiej wykorzystać przerwania. Dane wrzucamy z pełną prędkością do bufora cyklicznego (FIFO), a procedura obsługi przerwania SPI pobiera sobie z niego kolejne bajty do SPDR. Podobnie jak w poprzednim przypadku pierwszy bajt musimy wysłać "z wolnej ręki" badając ewentualnie flagę gotowości.
Ano choćby to z tego, że jak z przykładu w C nie potrafię odczytać nic i nie wiem, czy obsługuje FIFO, czy przerwania, to nie wiem jaki wpływ na działanie programu i całej komunikacji mają bajty konfiguracji. Nie każ mi uzasadniać pytań a jeśli nie potrafisz pomóc po prostu nie odpowiadaj.
Co oznaczają te ## w tym przykładowym przesuniętym programie? Spróbuj: 1. zsynchronizować zegary (może problemem jest różna częstotliwość taktowania 2. skrócić program odbierający znaki o czasożerne procedury, jeśli to pomoże to trzeba zaprojektować programowe FIFO po stronie odbiorczej koniecznie na przerwaniach.
Tutaj masz do RFM01/02: Nadajnik RFM02: [syntax=c]static void RFM_Init(void) { RFXX_WRT_CMD(0xCC00); //Status Register Read Command RFXX_WRT_CMD(0x9761); //868BAND,+/-90kHz, CLK = 10MHz RFXX_WRT_CMD(0xA640); //868MHz RFXX_WRT_CMD(0xD040); //RATE/2 RFXX_WRT_CMD(0xC823); //4.8kbps RFXX_WRT_CMD(0xC210); //DISABLE BIT SYNC RFXX_WRT_CMD(0xC038); //A0,A1...
Co innego Serin, Serout lub Open COMx.x, bo są programowe, a co innego Config SerialinX który konfiguruje bufor FIFO i odbiera wszystko w przerwaniu. Wszystko automatyczne a sprawdza się tylko stan bufora. Co innego prędkości "typowe" i tutaj przy 8MHz i 38400bps błąd wynosi 0.2%, a co innego jeśli mamy własne urządzenia/sieć i możemy je jednakowo do...
Witaj, Tyle, że ja nic nie wysyłam do USARTa więc skąd śmieci. Procek to Atmega16. Przyznam, że nie chciało mi sie pisać obsługi przerwania do odbioru tych znaków bo ten FIFO działa OK. Do programowego czyszczenia bufora jest bodajże funkcja Clear Buffer - tyle, że skąd tam się biorą dane? Prędkość to 38400. Kwarc 12MHz. dodatkowo multipleksuję wejścia...
Udało się komuś to uruchomić w tej konfiguracji? Ja próbowałem zrobić to z ATMEGA8A przy zasilaniu 5V oraz 3.3V i niestety nie udaje mi się nawiązać komunikacji miedzy modułami. Komunikacja (SPI) między mikrokontrolerem a modułem WiFI jest poprawna, bo wyniki są w pełni zgodne z tym co mówi specyfikacja (robię sobie zrzut rejestrów przez USART). Próbowałem...
W RFM12 trasceivery ustawia się poprzez komendy SPI, wysyłanie następuje poprzez wybranie odpowiedniej komendy i wypełnienie bufora FIFO (również via SPI). Odbiór może następować poprzez polling (czyli mikrokontroler sterujący co jakiś czas "odpytuje" urządzenie czy odebrano dane) lub w trybie przerwania (generowane przez RFM12 w momencie wypełnienia...
Witam ! Pytanie pewnie trywialne, ale ja odpowiedzi nie znam. Chce nawiązać komunikację pomiędzy dwoma AVR'ami. Programowane w Bascomie. Czy to się robi tak, że w przypadku SPI, jak i UART, jeden uC nadaje, a ten odbierający po odebraniu wywołuje przerwanie które odbiera bajt z bufora i przypisuje do jakiejś zmiennej ? Bo jeśli nie i odbiór następuje...
Hm.. można by zrobić tak: uruhomić timer, niech zlicza czas, przerwanie ustawione na zbocze narastające i opadające, wyzwolenie przerwania zapisywalo by do kolejki fifo stan licznika poczym licznik był by zerowany, i następował powrót z przerwania, parzyste wyraz opisywały by stan wysoki (ile trwał) a nieparzyste - niski, można by jeszcze jakoś skalibrować...
Też miałem ten problem. Trzeba w jednym miejscu zrobić jakby reset po pełnej transmisji. Jak tylko będę na 2 kompie to podeśle kody takiej biblioteki do obsługi RFM12B /* RESET FIFO */ void FIFOReset() { writeCmd(0x0000); writeCmd(0x8299); writeCmd(0xCA81); writeCmd(0xCA83); } Coś takiego to było, może...
Autor chce mieć 4 Mbps, to musi zrezygnować z przerwań, lub robić kombinacje w asemblerze. W sumie, niby proste. Pierwszy bajt danych wywoła przerwanie, w przerwaniu odczytuje bajt, wyłącza przerwania i kręci się w pętli sprawdzając rejestr statusu i czyta kolejne bajty. Do tego wszystkiego musi dodać timeout na jakimś timerze. Nie wiedzę aby używał...
Problem tak jak już piszą koledzy leży po stronie terminala. Zawsze włączałem odbieranie danych, i minimalizowałem okno terminala. Teraz poświęciłem 5 min, otworzyłem okno i czekałem do końca nie przeszkadzając mu. Oczywiście odebrałem 8192 Bajty z prędkością 115200. Pozdrawiam. PS: Nie zamykam tematu, jak znajdę jakieś przyczyny to napiszę to tu żeby...
(at)atmeg Jaki schemat jak ja sobie go robiłem na bieżąco? Po za tym co to za schemat, atmega lcd i wzm. op. i parę oporników. A kod samego programu jest i fotki działania. (at)Freddy, ciekawy artykuł, wezmę go pod uwagę na pewno. Mam teraz zagwostkę. Otóż mam ADC AD876 i on wyrabia 20MSPS - czy da się mu obniżyć samplowanie do innej wartości przy której...
Jak zrobić coś takiego ?? Mam procek AT90S2313 Do niego dołączony COM poprzez MAX232 i 8x LED do portu B. Z coma odbieram dane konkretnie text wysyłany przez program LCDsmartie. Chcę teraz napisać soft który odbierze np 20 znaków i przetransformuje je na odpowiednie ciągi danych przeznaczone do wysłania na port B programik ma sterać wyświetlaczem widmowym...
:arrow: McRancor Na portach nie da rady - wiem... Plan jest taki: RAM systemowy -> DMA -> FIFO a tutaj już prosty układ wysyłający dane. 480x640x2(baity na kolor)x50Hz = 30MB/s, jednak pamięci 16 bitowe to już "tylko" 15MW/s. Bez DMA to w życiu się nie zmieści i przy całej mocy biednych 60MIPS. Przeanalizowałem sprawę i doszedłem do wnioski, że mogę...
Oczywiście że zmieniam rodzaj procka od tego zacząłem. Także to nie to. Dużo tematów widziałem na internecie o SPI i ATMEGA32. Tak więc ludzie często mają problem właśnie na tym procku. Kończą mi się już pomysły na razie jadę na ATMEG-dze 16 ale po mały kończy mi się miejsce na program a jeszcze muszę dołożyć obsługę DCF77 i odbieranie danych radiowo...
Zobacz tutaj '####################################### 'inculde file for RF12-device 'info about RF12 Transceiver: www.hoprf.com or www.integration.com 'info about using RF12 with Bascom: www.comwebnet.de ' 'Version History '--------------- 'Initial Version: v0.10 'Date: 200711 'Author: Kurzschluss '--------------- 'Version: v0.11...
Absolutnie nie posiadam przykładów w Bascom, mam tylko Helpa i co nieco pamiętam, co było juz na forum... ;) Na codzień używam asm - ma mniej poleceń do zapamiętania ;) Pewnie w ATmega128 bedziesz potrzebował użyć URXC1 zamiast URXC . Ostatnio, jak oprogramowywałem odbiór USART, to zrobiłem bufor w RAM "okrężny", z którego w wolnej chwili procedurki...
Zabieram się za realizację projektu zaweirającego m.in. RFM12. Projekt działający. Załączam kod obsługi RFM. '####################################### 'inculde file for RF12-device 'info about RF12 Transceiver: www.hoprf.com or www.integration.com 'info about using RF12 with Bascom: www.comwebnet.de ' 'Version History '--------------- 'Initial...
Moduł ESP8266 nie będzie zupełnie działać tak jak HC-05 czy tym podobne. To, że ma wyjścia pod UART jeszcze o niczym nie świadczy. Są to moduły Wifi i wymagają odpowiedniej konfiguracji poprzez komendy AT, co poprzez terminal może i jest w miarę łatwe, ale dla mikrokontrolera już takie proste może nie być ze względu na różne czasy odpowiedzi, losowe...
Ze względu na prostotę sterowania zastosowałem moduły radiowe TX433MHZ (i RX433MHz w odbiorniku) - nie wymagają one żadnej inicjalizacji. Ich wadą jest niewątpliwie modulacja ASK, która jest bardziej podatna na zakłócenia niż FSK, stosowana w większości "programowalnych" modułów RF. Moje obawy, niestety. potwierdziły się - zakłócenia od silniczków...
Jest jeszcze troche inaczej: Niezaleznie od uzytego interfejsu obowiązkowe jest opracowanie warstwy protokołu. (oprócz i2c) I2c zawiera juz wg specyfikacji tą warstwę, dlatego można uzywać prostych sekwencji wysylania/odbierania danych z dowolnego innego kontrolera i2c. Wszystkie inne interfejsy tej warstwy nie posiadają, dlatego jesli chce się stworzyć...
Witam, mam pytanie zmontowałem nadajnik i odbiornik Funk Wetterstation. Podczas wykonywania programu (nadajnik) program wiesza mi się w lini: Sub Rf12_txdata(byval Txlen As Byte) Temp = Rf12_trans(&H8238) : Rf12_ready 'Power CMD: synt.& PLL on [b]Temp = Rf12_trans(&H0000) : Rf12_ready 'Status holen[/b]...
arnoldziq wrote: Czy poza sygnałemy TXD i RXD w FT232 podłączasz do ATMEG-i inne wyprowadzenia ? Zrobiłem kiedyś taki układ na ATMEGA16L/8MHz i działał bez problemu. Co prawda, oprogramowałem uC w BASCOM-ie, ale to nie powinno mieć wpływu. Nie mam teraz dostępu do tego projektu, a program został w mojej starej firmie, ale z tego co pamiętam dane które...
Przerwanie od RFM12 [syntax=basic4gl] '*************************************** Przerwanie INT2 - od RFM12 Int2_rfm: Disable Int2 Disable Interrupts Flaga_rfm = 1 Sd_card = 1 ' zablokowany zapis do karty SD Gosub Rf12_receive D1 = Received_data ' ciag inicjujacy - $TEMP / $DATA Gosub Rf12_receive D2 = Received_data ' ciag inicjujacy - $TEMP / $DATA Gosub...
Witam, Z tej stronki [url=http://mirley.firlej.org/node/1137]... dowiedziałem się jak obsługiwać moduły komunikacji radiowej RFM12B. Przykład nadanika: [syntax=vbnet]$regfile = "m8def.dat" $crystal = 8000000 '8MHz $hwstack = 70 $swstack = 70 $framesize = 160 '$noramclear Config Submode = New Config Watchdog = 512 '512ms Start Watchdog '---------Constants---------------------...
http://obrazki.elektroda.pl/3809639100_1... Bywa, że w projekcie trzeba dodać dodatkowy port komunikacyjny. Jest to problemem, gdy taka potrzeba zajdzie w końcowej fazie projektu. Wymiana mikrokontrolera na większy spowoduje konieczność zmiany PCB. Dodatkowy port USART, może być potrzebny tylko podczas uruchamiania urządzenia (np do...
Oczywiście że nie oznacza, ale oznacza że wielu to używa, a moim zdaniem gdyby było tak skopane, to używałoby raczej niewielu. Jest to bardzo śmiała teza (; Jakoś to musi działać mimo wszystko. Nie no - "jakoś" działa. A mogłoby dużo lepiej (; Potem przy problemie szukam pomocy na elektrodzie i czytam - wywal te dwa tygonie wysiłku do kosza, nie ciesz...
Witam! Na początku przepraszam bardzo, jeśli popełnię jakieś błędy, ale siedzę nad problemem już od rana non-stop i pewnie nie widzę czegoś prostego, a stopień mojej frustracji osiąga już granice bezpieczeństwa. Ale do rzeczy: Mam następujący kod odbierania RFM12B napisany w Bascom (gotowiec z forum): http://obrazki.elektroda.pl/9415176500_1...
Witam! Czy z tego co piszesz moge mieć problem z przesłaniem: temperatury zewnetrznej znaku temperatury wilgotności ciśnienia i jeszcze temperatury nc CO - mam rację? Mam jeszcze jedno pytanie zwiazane z tym ukladem, a mianowice obecnie mój nadajnik opiera się na atmega 8 natomiast odbiornik na atmega 16. Niestety odbiornik jest zegarem z PCF8563 (który...
Panowie odpaliłem już mój układ na innej atmega 16 trzeba zmienić jedną rzecz w konfiguracji SPI sprzętowy. Jednak mam problem z Atmegą 32 bo tam wciąż nie działa, nie odczytuje danych z nadajnika. I tu mam konkretne pytanie gdyż dla amegi 8 dla której pierwotnie był przygotowany soft w BASCOM-ie to wektory przerwań dla SPI są takie same dla A8 i A16...
Przerobiłem program na Atmega328. Teraz ma tylko odbierać dane z master na Atega1284p i wysyłać do Domoticz. [syntax=vbnet] $regfile = "m328pdef.dat" $crystal = 8000000 $hwstack = 100 ' rozmiar stosu sprzętowego $swstack = 100 ' rozmiar stosu programowego $framesize = 128 $baud = 19200 '************ Uart 0 Config Serialin0 = Buffered , Size = 150 ,...
Witam Mimo, że większość proponowanych tutaj rozwiązań podłączenia RFM12 do Atmegi wykorzystuje SPI programowe, ja podłączyłem tradycyjnie, przez SPI sprzętowe - mimo, że nie miałem problemów z wgrywaniem kodu do Atmegi spiętej z RFM12, to uruchomienie ich razem jest problematyczne ( każde osobno działa bez problemu ) [syntax=basic4gl] $include "Config_AVR-DOS.BAS"...
Witam Mam Atmega32A + PCF8563 + PCF8574 + RFM12 + DS18B20 +DHT11. Port danych LCD to Port.A, ControlPort to Port.C. I2C standardowo na Portc.0 Portc.1. Niestety jest problem z obsługą I2C, tzn. zegar PCF8563 nie działa w ogóle ( na LCD puste pole ) , a klawiatura na PCF8574 - tylko jeden klawisz i to nie ten, który jest przypisany w kodzie ( działa...
Witam Chciałem oprócz standardowego pakietu dla wszystkich slave'ów wysyłać od czasu do czasu krótszy pakiet W masterze wysyłam tak: tylko dwa razy na dobę Przerwanie pętli For..Next - bajt 7 i 22 ( warunkowo, gdy pakiet krótszy ) zawierają wartość 255, która pełni role informacji o końcu pakietu Przez wprowadzenie i wykorzystanie informacji o długości...
Witam W związku z występowaniem od czasu do czasu błędów w wysyłanych danych chciałem wprowadzić wprowadzić sprawdzenie poprawności odebranych danych przez wysłanie ostatnim bajtem wartości, którą odbiornik by porównywał wartością, którą sam obliczy z odebranych danych. Nadajnik na Atmega328, w pętli głównej sumuje wszystkie wartości, które będą wysłane...
bascom projekt bascom bascom bascom enkodera bascom bascom enkoder
regulator fazowy prądu ładowania kalkulator filtr rozkleić zasilacz
kierunkowskazy motocykl inżynieria środków transportu
Falownik Focus błąd 197 - przyczyny i rozwiązania Napięcie w gniazdku w piwnicy po założeniu zabezpieczenia