AVR i błyskająca led
AVR i błyskająca led
witam.
prosty program.
dioda led ma zabłysnąć na 100ms, 1 sekunda przerwy i tak w kolko.
**********************************************************
$regfile = "ATtiny2313.DAT"
$crystal = 4000000
Config Portd = Output
Config Portd = &B1111111
Config Portb = Output
Config Portb = &B00000000
Led Alias Pind.2
Do
Set Led
Waitms 100
Reset Led
Wait 1
Loop
End
**********************************************************************
dioda led pulsuje z częstotliwością 1 Hz
dlaczego tak jest bo nie mogę zrozumieć tego.
pozdrawiam.
prosty program.
dioda led ma zabłysnąć na 100ms, 1 sekunda przerwy i tak w kolko.
**********************************************************
$regfile = "ATtiny2313.DAT"
$crystal = 4000000
Config Portd = Output
Config Portd = &B1111111
Config Portb = Output
Config Portb = &B00000000
Led Alias Pind.2
Do
Set Led
Waitms 100
Reset Led
Wait 1
Loop
End
**********************************************************************
dioda led pulsuje z częstotliwością 1 Hz
dlaczego tak jest bo nie mogę zrozumieć tego.
pozdrawiam.
Zależy jak ma Pan podłączony LED do nóżki mikrokontrolera.Zle rozumuje działanie programu.
Myślałem ze napisany program
1. zapala led
2. czeka 100ms
3. gasi led
4. czeka 1 sek.
Jeżeli LED jest połączona katodą do portu (zaświecana masą) to część programu mogła by wyglądać tak:
Kod: Zaznacz cały
Do
Reset Led
Waitms 100
Set Led
Waitms 1000
Loop Kod: Zaznacz cały
Do
Set Led
Waitms 100
Reset Led
Waitms 1000
Loop będzie wystarczająca. Jeżeli konieczna jest większa precyzja lub "miganie" LED w "trakcie" wykonywania przez program innych "czynności" to warto odmierzać czas świecenia/nieświecenia w przerwaniach od timera.
witam.
no zapodałem Twój kod, jest praktycznie taki sam jak moj ( zapalanie stanem wysokim ) i led pulsuje 0.9Hz (1.1s)
dokładnie, ma być to sygnalizacja optyczna, najprostszy program. nie potrzeba dokładności dużej. Wystarczy na poleceniach "wait"
********************************
Do
Set Led
Waitms 100
Reset Led
Waitms 1000
Loop
*********************************
i nie zapala się na 100ms i 1 sekunda przerwy.
równo na 0.9 Hz pracuje.
pozdr.
no zapodałem Twój kod, jest praktycznie taki sam jak moj ( zapalanie stanem wysokim ) i led pulsuje 0.9Hz (1.1s)
dokładnie, ma być to sygnalizacja optyczna, najprostszy program. nie potrzeba dokładności dużej. Wystarczy na poleceniach "wait"
********************************
Do
Set Led
Waitms 100
Reset Led
Waitms 1000
Loop
*********************************
i nie zapala się na 100ms i 1 sekunda przerwy.
równo na 0.9 Hz pracuje.
pozdr.
Tak, ja to rozumiem to co napisałeś teraz.
Nawet jak tak go zmodyfikuje to na wyjściu otrzymuje przebieg o wypełnieniu 50 %.
1 sekunda stan H 1 sekunda stan L.
Mi chodzi o to aby uzyskać krótkie błyski powtarzające się co około 1 sekundę ( nie musi być to dokładnie )
Błysk ma trwać około 100ms .
Czyli przebieg by wyszedł na wyjściu około 10 % sygnału PWM przy częstotliwości 1Hz.
Krótkie na 100ms "szpilki" co około 1 sekundę.
Nawet jak tak go zmodyfikuje to na wyjściu otrzymuje przebieg o wypełnieniu 50 %.
1 sekunda stan H 1 sekunda stan L.
Mi chodzi o to aby uzyskać krótkie błyski powtarzające się co około 1 sekundę ( nie musi być to dokładnie )
Błysk ma trwać około 100ms .
Czyli przebieg by wyszedł na wyjściu około 10 % sygnału PWM przy częstotliwości 1Hz.
Krótkie na 100ms "szpilki" co około 1 sekundę.
Zamiast nie powinno być ?
Kod: Zaznacz cały
Led Alias Pind.2 Kod: Zaznacz cały
Led Alias Portd.2 Kod: Zaznacz cały
regfile = "ATtiny2313.DAT"
$crystal = 4000000
Config Portd = Output
Config Portd = &B1111111
Config Portb = Output
Config Portb = &B00000000
Led Alias Pind.2
Do
Set Led
Waitms 100
Reset Led
Wait 1
Loop
End Kod: Zaznacz cały
Config Portd = Output
Config Portd = &B1111111
Config Portb = Output
Config Portb = &B00000000Kod: Zaznacz cały
Config Portd = Output
Portb = &B1111111
Config Portb = Output
Portb = &B00000000Kod: Zaznacz cały
Czyli jako wyjście z procka to piszemy np PORTB.1
A jak wejście to PINB.1