Witam wszystkich:)
Ostatnio zakupiłem płytkę testową EvB 4.3 z ATMEGA32 oraz książkę "Mikrokontrolery dla poczatkujących". Podczas wykonywania ćwiczeń z książki wyniknął problem. Np. w ćwiczeniu nr 6 wykorzystujemy Acsr.0 i Acsr.1 z rejestru ACSR które pełnią rolę bitów pomocniczych - i tu problem bo po zaprogramowaniu ATMEGA32 takim programem mikrokontroler jakby nie pracował. Podobnie jest w dalszym ćwiczeniu gdzie użyto rejestr EEDR jako licznika. Dodam że programowanie odbywa się przez bootloadera...czy to może być przyczyną niezadziałania programu?(Programy z książki oczywiście dostosowuje do ATMEGA32-ustawienia portów jakie wykorzystuje itp.) Jestem początkujący jeśli chodzi o programowanie. Z góry bardzo dziękuję za odpowiedzi. Oto pierwotny przykładowy program z wykorzystaniem opisanych przeze mnie funkcji:
' C006c Prosty licznik dekadowy z przyciskiem
' licznikiem nie jest już rejestr PortB
' tylko rejestr o nazwie EEDR
'segmenty prawego wyświetlacza pokazują stan licznika
Config Portb = 255 'wszystkie końcówki jako wyjścia
Portb = &B11111111 'na początek wygaś
Config Portd = &B1111100 'dwie najmłodsze jako wejścia
Portd = &B1110111 'włączony prawy wyświetlacz
'Eedr = 0 automatycznie na początek w liczniku zero
Do 'pętla
Debounce Pind.0 , 0 , Zwieksz , Sub 'naciśnięcie S1
Loop
End
Zwieksz: 'etykieta zakończona dwukropkiem
Incr Eedr 'zwięk zawartość licznika
If Eedr = 10 Then Eedr = 0 ' skracanie cyklu
Portb = Eedr 'przepisz do Portu B
Portb = Not Portb 'zaneguj wszystkie bity portu
Return
Ostatnio zakupiłem płytkę testową EvB 4.3 z ATMEGA32 oraz książkę "Mikrokontrolery dla poczatkujących". Podczas wykonywania ćwiczeń z książki wyniknął problem. Np. w ćwiczeniu nr 6 wykorzystujemy Acsr.0 i Acsr.1 z rejestru ACSR które pełnią rolę bitów pomocniczych - i tu problem bo po zaprogramowaniu ATMEGA32 takim programem mikrokontroler jakby nie pracował. Podobnie jest w dalszym ćwiczeniu gdzie użyto rejestr EEDR jako licznika. Dodam że programowanie odbywa się przez bootloadera...czy to może być przyczyną niezadziałania programu?(Programy z książki oczywiście dostosowuje do ATMEGA32-ustawienia portów jakie wykorzystuje itp.) Jestem początkujący jeśli chodzi o programowanie. Z góry bardzo dziękuję za odpowiedzi. Oto pierwotny przykładowy program z wykorzystaniem opisanych przeze mnie funkcji:
' C006c Prosty licznik dekadowy z przyciskiem
' licznikiem nie jest już rejestr PortB
' tylko rejestr o nazwie EEDR
'segmenty prawego wyświetlacza pokazują stan licznika
Config Portb = 255 'wszystkie końcówki jako wyjścia
Portb = &B11111111 'na początek wygaś
Config Portd = &B1111100 'dwie najmłodsze jako wejścia
Portd = &B1110111 'włączony prawy wyświetlacz
'Eedr = 0 automatycznie na początek w liczniku zero
Do 'pętla
Debounce Pind.0 , 0 , Zwieksz , Sub 'naciśnięcie S1
Loop
End
Zwieksz: 'etykieta zakończona dwukropkiem
Incr Eedr 'zwięk zawartość licznika
If Eedr = 10 Then Eedr = 0 ' skracanie cyklu
Portb = Eedr 'przepisz do Portu B
Portb = Not Portb 'zaneguj wszystkie bity portu
Return