1. Ustawiasz cały portD jako wyjścia a na nim są wejścia INT którymi chcesz generować przerwania. 2. używasz starych wektorów przerwań, używaj nowych ISR: http://www.nongnu.org/avr-libc/user-manu... 3. pokaż schemat swojego układu. 4. return(0) jest zbędne. Wystarczy: [syntax=c]while(1){};[/syntax]
for(;;) return 0; Zbytnio poprawna ta pętla nieskończona nie jest: w pierwszej iteracji nastąpi wyjście z funkcji main. Jeśli dobrze pamiętam, to po wyjściu z main następuje automatyczne zablokowanie przerwań oraz wejście do pętli nieskończonej. Żeby nie być gołosłownym, fragment jakiegoś kodu po skompilowaniu: 000000b2 <.do_clear_bss_start>:...
Niestety klawiatura matrycowa wymaga nieco zachodu z jej obsługą, za to wymaga mniejszej ilości pinów - coś za coś :) Nie wiem jakie dodatkowe funkcje będzie miał program, ale z reguły skanowanie klawiatury robi się w oparciu o jakiś timer, bo dodatkowo należy eliminować drgania styków. Strona ... korzystaj do woli, a w razie problemów pisz na forum...
Jeśli przyciski zwierać będziesz do masy, to nie trzeba. ATmega ma wewnętrzne rezystory podciągające. Trzeba pamiętać by je jeszcze włączyć. Z przerwaniem też można te przyciski ożenić, za pomocą prostej drabinki diodowej. Zajrzyj do dokumentacji zestawu ZL3AVR.
Istnieje jeszcze jedna możliwość. Jakiego używasz AVR-GCC? Możesz mieć jakąś starszą wersję z błędem, który właśnie objawia się poprzez niepoprawne działanie przerwań COMPARE. Wystarczyłby jeden błąd w adresie wektora TIMER0_COMP_vect i "po zawodach". ps. Nie rzekomo działającego, tylko działającego. Niestety nie mogę ci strumieniowo przesłać video...
Witam. Problem dotyczy kodu obsułgującego klawiaturę 1x4 na przerwaniach w μC ATMega32, będącą w moim przypadku częścią zestawu uruchomieniowego zl3avr. Poniżej znajduje się napisany przeze mnie program. Niestety podczas uruchomienia klawisze sprawiają wrażenie jakby były cały czas wciśnięte. Wszystkie 4 diody się zapalają, a na przyciskach jest...
Na samym początku programu powinieneś dodać skok do podprogramu dla wektora resetowania, prostszym językiem mówiąc powinieneś określić miejsce gdzie zaczyna się program po włączeniu zasilania procesora. Wektor RESET znajduje się zawsze na początku pamięci programu, czyli ma adres 0, zatem program powinien wyglądać tak: .INCLUDE "m32def.inc"...
Dziękuje bardzo za pomoc. Rozwiało to moje wątpliwości mam jeszcze kilka pytań. Wyczytałem, że bascom obsługuje SPI. i może to być SPI sprzętowe jak i programowe. Czy są różnice w prędkości obu sposobów? Patrząc na jeden przykład linia SS musi koniecznie być podłączona do INT (przerwania). Gdzie indziej wyczytałem, że urządzeń można podłączyć tak wiele...
Ja mam u siebie troche inaczej. Ale najlepiej skorzystać z datasheeta bezczelnie kopiując kod. Po co Ci to L po określeniu taktowania? Piszesz w WinAVR czy czymś innym? Init: #define FOSC 8000000// Clock Speed #define BAUD_GPS 9600 #define MYUBRR_GPS FOSC/16/BAUD_GPS-1 ////////////////////////////////////////... void USART_Init( unsigned...
Mam problemy z klawiaturą matrycową którą właśnie robię na przerwaniach na podstawie tego schematu: http://www.btc.pl/pdf/zl3avr.pdf (Strona 2). Napisałem taki kod: [syntax=c] #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> #include <avr/interrupt.h> struct keyboard { int lastKey; int isPressingNow; int numberOfKey;...
A po co podłączyłeś odbiornik do int0 skoro z niego nie korzystasz? Po za tym mówisz że fuse bity masz na zew. kwarc 16MHz a w programie informujesz że używasz 8MHz... Masz tutaj mój sprawdzony kod: $regfile = "m32def.dat" 'atmega32 $crystal = 8000000 'kwarc 8MHz Config Lcdbus = 4 Config Lcd = 16 * 2 'wyswietlacz 2x16 znakow Config Lcdpin...
Witam.. stało się... nie mogłem się dogadać z kwarcem - nie zgadzały mi się czasy tzn. kwarc 16 Mhz prescale 256 load timer250 czyli czas= 0,004 250 przerwań to 1 sekunda.. niestety jakaś dużo dłuższa.. zacząłem więc grzebać w FUSEBITACH bo gdzieś znalazłem, że koleś ma ustawione na ext ..... 16K + 4ms.. ale po tym sekunda była nieco dłuższa od normalnej...
gaskoin- się nie zapomniało. Z volatile to samo. Static jest static- przyjmuje przy deklaracji wartość 0 i potem się przepisuje i jest. _Robak_ - zasilanie i reset sprawdzałem oscyloskopem przy wyzwalaniu normal i single przy opodającym zboczu i przy ustawieniu poziomu wyzwalania na ok.4.8V. Jak napisałem- nic nie ma podejrzanego. mirekk36- to że jest...
Witam, Wiem, że RC5 ten wątek był poruszany wiele razy na forum, ale chcę sie nauczyć programować w C, wiec chciałem wykorzystać odbiornik podczerwieni z mojego zestawu(ZL3AVR) i napisać protokół do RC5 Pracuje na kwarcu 16MHz i ATmega32. Odbiornik podczerwieni podłaczylem do PD3 #include <avr/io.h> // dostęp do rejestrów #include <avr/interrupt.h>...
Witam. Wlaśnie otrzymałem programator JTAG(pewnie wiekszość ma taki sam, ale dla pewności zdjęcia poniżej) http://photos04.allegroimg.pl/photos/ory... http://www.sibit.pl/allegro/usbice/foto/... Jakie kroki powinienem wykonać, aby moc pragramowac uklad(Atmega32 + kwarc 16MHz => ZL3AVR), co trzeba ustawic w AVR Studio? Aby debugować...
Dzień dobry. We wstępie odrazu zaznaczę, że używam zestawu ZL3AVR z mikrokontrolerem ATmega32. Chciałem napisać program w assemblerze, który będzie zliczał wciśnięcia określonego przycisku w dowolnym rejestrze i będzie wyświetlał liczbę wciśnięć binarnie na diodach (czyli przykładowo jeśli wcisnąłem przycisk 7 razy to mają świecić się trzy diody z prawej...
No właśnie z tego niewiele wynika, bo nie widać dobrze połączeń (ścieżek) pomiędzy poszczególnymi elementami płytki, ale zakładam, że to zestaw uruchomieniowy wcisnąć klawisz i nie puszczać do czasu, kiedy timer wyłączy diody, puścić klawisz i zaobserwować reakcję diod. Można ewentualnie spróbować wyeliminować problem stosując sprzętowy debouncing....
Witam, Jestem w trakcie budowy komunikacji między ATmega32 a klawiatura PS/2. Wykorzystuje biblioteki zamieszczone na stronie //klawiatura.c #include <avr/io.h> //#include <avr/interrupt.h> #include <string.h> #include <inttypes.h> #include <stdlib.h> //#include <stdio> #include "hd44780.h" #include "atkeyboard.h"...
witam Temat być może jest trochę mylący. Ale do rzeczy. Bawię się zestawem zl3avr i jestem na etapie obsługi transmisji w kodzie RC5 w asemblerze. W książce "Mikrokontrolery AVR ATmega w praktyce" podane są gotowe programy do nadawania i odbierania wiadomości w RC5. O ile procedurka nadawania nie budzi żadnych moich wątpliwości, o ile w przypadku odbierania...
Witam, Od razu uprzedzam, że jestem początkujący. Programuję w Bascomie. Mam jak narazie zestaw uruchomieniowy ZL3AVR z ATMega32. Mam kupioną przejściówkę RS232 do USB, ale nie chodzi za dobrze. Chcę wysyłać dane MIDI do komputera na USB, więc chyba lepiej nie korzystać z RS232 bo 31250 baudów to niestandardowa prędkość. Jest więc możliwa emulacja http://cesko.host.sk/IgorPlugUSB/IgorPlu...
Witajcie, mam problem który wykracza poza dotychczas posiadaną wiedzę i granice rozumowania mojego umysłu ;) Otóż uruchomiłem bibliotekę FatFS (przykład do obsługi kart SD przez UART) na procesorze ATMega32 na płytce testowej (dokładnie ZL3AVR jeśli to w czymkolwiek może pomóc), wszystko ładnie działało bez zarzutu - karty działały szybko i niezależnie...
Wymyśliłem sobie, że będę obsługiwał klawiaturę matrycową 4x4 na płytce ZL3AVR w przerwaniu generowanym podczas naciśnięcia któregokolwiek klawisza (wyprowadzenie JP13 połączone mam z INT0), siedzę nad tym bardzo długo i nie mogę doszukać się swego myślowego błędu. Pierwszy wiersz (kolumna) działa poprawnie natomiast wszystkie pozostałe działają tak,...
Przerobiłem trochę program z książki "Mikrokontrolery Avr W Praktyce" (Doliński) w taki sposób, by napięcie mierzone było wyświetlane na wyświetlaczu LCD. Używałem modułu uruchomieniowego ZL3AVR wyposażonego m.in. w mikrokontroler Atmel ATMEGA32 16PU, wyświetlacz LCD HD444780 2x16 oraz 16-sto przyciskową klawiaturę. Układ podłączyłem jak na rysunku:...
zl3avr atmega32 atmega32 przerwania przerwania atmega32
internet zawiesza wyciek amica podłączyć dekoder internet
Lokalizacja włącznika w telewizorze Panasonic 2014 Kolor obudowy łożyska w pralce Electrolux - co oznacza?