Aktyw Forum
Zarejestruj się na forum.ep.com.pl i zgłoś swój akces do Aktywu Forum. Jeśli jesteś już zarejestrowany wystarczy, że się zalogujesz.
Sprawdź punkty Zarejestruj sięPrzerwanie INT0 dla ATMEGA32
Moderatorzy:Jacek Bogusz, robertw, k.pawliczak, Moderatorzy
-
- -
- Posty:12
- Rejestracja:4 lip 2004, o 11:10
- Lokalizacja:Bydgoszcz
Piszę programik dla ATMEGA32.
Konfigurując przerwanie INT0 na reakcję zboczem narastającym (falling),
otrzymuję komunikat od od BASCOMa ,że ATMEGA32 może być wyzwalana tylko poziomem.
Po zmianie chipa (w ustawieniach BASCOMA) na ATMEGA16 jest OK , tzn kompiler kompiluje bez żadnych zastrzeżeń wyzwalanie zboczem narastającym.
Nie bardzo wiem o co chodzi, tym bardziej że w PDF ATMEGA32 jak byk stoi że przerwania można konfigurować jak się żywnie podoba.
Czy ktoś to już przerabiał ?
krzysztof
Konfigurując przerwanie INT0 na reakcję zboczem narastającym (falling),
otrzymuję komunikat od od BASCOMa ,że ATMEGA32 może być wyzwalana tylko poziomem.
Po zmianie chipa (w ustawieniach BASCOMA) na ATMEGA16 jest OK , tzn kompiler kompiluje bez żadnych zastrzeżeń wyzwalanie zboczem narastającym.
Nie bardzo wiem o co chodzi, tym bardziej że w PDF ATMEGA32 jak byk stoi że przerwania można konfigurować jak się żywnie podoba.
Czy ktoś to już przerabiał ?
krzysztof
Przerwanie
Mam ten sam problem dla M32.
A jeszcze bardziej ciekawe że brat ma obok kompa z win 2000 i jemu taki błąd się nie pokazuje.
A jeszcze bardziej ciekawe że brat ma obok kompa z win 2000 i jemu taki błąd się nie pokazuje.
Drogi guru
Nie każdy lubi C i nie każdy zna asembler, żęby teraz poradzić sobie z tym przerwaniem muszę przekopać PDF i ustawić odpowiednie bity, czyli tak jak każdy kto pisze w asemblerze, Bascom jest może i ułomny ale za to piszę aplikację w kilka godzin a nie tydzień w asemblerze.
-
- -
- Posty:12
- Rejestracja:4 lip 2004, o 11:10
- Lokalizacja:Bydgoszcz
Szkoda że nikt nie popchnie tematu dalej. Chodziło mi o zastosowanie klawiatury 4x4 podłączonej poprzez szynę i2c . Jest dostępna gotowa biblioteka do takiej obsługi - cóż z tego kiedy wymagana jest w Bascomie konfiguracja przerwania zewnętrznego na reakcję na zboczem. (W tej chwili nie pamiętam czy opadajęce czy narastające)
I tu wyłazi ten sęk z komunikatem błędu . Ciekawe że tylko dla ATMEGA32 - taki właśnie mam , a dla ATMEGA16 (przecież to to samo) jest ok.
I tu wyłazi ten sęk z komunikatem błędu . Ciekawe że tylko dla ATMEGA32 - taki właśnie mam , a dla ATMEGA16 (przecież to to samo) jest ok.
"Szkoda że nikt nie popchnie tematu dalej. Chodziło mi o zastosowanie klawiatury 4x4 podłączonej poprzez szynę i2c "
czy to znaczy że chcesz podpiąć PCF8574??, nie opłaca się duże koszty układu, żeby było szybciej musisz dać 2 takie, po za tym PCF w przypadku zmiany na wyprowadzeniu daje przerwanie poprzez zbocze opadające a nie narastające.
wykorzystanie jednego PCF'a wiąże się z ciągłą obsługą tej magistrali a co za tym idzie spowolnienie całej pracy urządzenia.
nie lepiej wykorzystać 8 nóżek procka na całą klawiaturę?? problem z głowy
czy to znaczy że chcesz podpiąć PCF8574??, nie opłaca się duże koszty układu, żeby było szybciej musisz dać 2 takie, po za tym PCF w przypadku zmiany na wyprowadzeniu daje przerwanie poprzez zbocze opadające a nie narastające.
wykorzystanie jednego PCF'a wiąże się z ciągłą obsługą tej magistrali a co za tym idzie spowolnienie całej pracy urządzenia.
nie lepiej wykorzystać 8 nóżek procka na całą klawiaturę?? problem z głowy
można by tak, nie sprawdzałem, ale może pójdzie, bity 0 i 1 w rejestrze MCUCR właśnie za to odpowiadją
na wszelki wypadek dałem jeszcze "Config Int0 = low level" - bo nie wiem czy ta instrukcja jeszcze jakiś rejestrów nie konfiguruje:
Config Int0 = low level
Mcucr.0 = 0 ' wyzwalanie przerwania na zboczu opadającym dla int0
Mcucr.1 = 1
na wszelki wypadek dałem jeszcze "Config Int0 = low level" - bo nie wiem czy ta instrukcja jeszcze jakiś rejestrów nie konfiguruje:
Config Int0 = low level
Mcucr.0 = 0 ' wyzwalanie przerwania na zboczu opadającym dla int0
Mcucr.1 = 1
Testowałem ostatnio takie ustawienia :
MCUCR.ISC11 = 1 'These 2 codes will set the INT1 to generate
MCUCR.ISC10 = 0 'an interrupt on the falling edge of a signal.
MCUCR.ISC01 = 1 'These 2 codes will set the INT0 to generate
MCUCR.ISC00 = 1 'an interrupt on the rising edge of a signal.
ale wygląda na to jak by czasem M32 się zawieszał , albo pojawiały się jakieś zakłócenia.
PozdrAS
MCUCR.ISC11 = 1 'These 2 codes will set the INT1 to generate
MCUCR.ISC10 = 0 'an interrupt on the falling edge of a signal.
MCUCR.ISC01 = 1 'These 2 codes will set the INT0 to generate
MCUCR.ISC00 = 1 'an interrupt on the rising edge of a signal.
ale wygląda na to jak by czasem M32 się zawieszał , albo pojawiały się jakieś zakłócenia.
PozdrAS
Kto jest online
Użytkownicy przeglądający to forum: Obecnie na forum nie ma żadnego zarejestrowanego użytkownika i 40 gości