Witam - jeszcze jej nie zablokowałem ale:
Więc problem jest następujący:
mam atmege8 kwarc 8 MHz i fusy ustawione jak na rysunku fusy1
płytka podobna do testowej z mikroprocesorowej oślej łączki pod portB podpięte segmenty a,b,g,f
program naskrobany w bascomie
działa prawie OK - nie zgadzają się czasy waitms 20 trwa około pół sekundy ale segmenty się zapalają i gasną prawidłowo
pomyślałem - nie odmierza czasu prawidłowo pewnie kwestia konfiguracji słynnych FUSE dotyczących rezonatora
po przeczytaniu "Fuse Bits czyli dramat AVR'ów w 3 aktach..."
ustawiłem fusy jak na rysunku fusy2
niestety wyświetlacz raz tylko zapala segmenty i ich nie gasi w trakcie polecenia ROTATE
oto kod programu
$regfile = "m8def.dat"
$crystal = 8000000
Config Portb = Output
Portb = &B11111110
Config Portc = Input
Portc = &B1111111
Do
Waitms 20'-przy ustawieniach FUSE2 zmieniam na wait 1
If Pinc.0 = 0 Then
Gosub Etykieta1
Else
Gosub Etykieta2
End If
Loop
Etykieta1:
Rotate Portb , Left , 1
If Portb = &B11101111 Then
Portb = &B11111110
End If
Return
Etykieta2:
Rotate Portb , Right , 1
If Portb = &B01111111 Then
Portb = &B11101111
End If
Return
'Portb.0 = Not Portb.0
'Waitus 1
[ Dodano: 2009-03-26, 20:13 ]
OK
więc problem prawie rozwiązany:
na wewnętrznym oscylatorze było OK bo mogłem korzystać z portów PB.6 i PB.7
dłuższy czas dzialania wynikał pewnie z zadeklarowanej wartości kwarcu
na zewnętrznym nie dzialalo poprawnie bo bawiłem się bitami na porcie B
Więc teraz takie pytanie:- jak konfigurować porty które mają dodatkowe funkcje -
OC1 TxD RxD Xtal1 Xtal2 ??