Witam serdecznie,
Zachwycony możliwościami (i niskimi cenami) mikrokontrolerów postanowiłem nauczyć się ich wykorzystania używając do programowania Baskom.
Jednym z moich pierwszych programów (jak to robiło wielu przede mną) jest zapalanie i gaszenie diody.
Rozwiąłem to nieco i wyszedł mi taki oto wskaźnik biegów do mojego motocykla.
Zaprogramowałem go tak:
Konstrukcja przełącznika biegów to rozadzaj przełącznika obrotowego, nie ma więc możliwości zwarcia do masy więcej niż jednego portu.
Dzięki małemu rozmiarowi ATMEGA8 TQFP i rezystorom SMD całość zmieści sie pod wysietlaczem 20mm.
Urządenie uruchomiłem na płytce testowej i działa, jednakże..... wydaje mi sie to wszystko zbyt proste! Musiałem gdzieś zrobić jakiś błąd.
Będę Wam bardzo wdzięczny za pomoc i wszelakie uwagi.
Pozdrawiam
Proszę umieszczać listingi programów w znacznikach "Code". [c_p]
Zachwycony możliwościami (i niskimi cenami) mikrokontrolerów postanowiłem nauczyć się ich wykorzystania używając do programowania Baskom.
Jednym z moich pierwszych programów (jak to robiło wielu przede mną) jest zapalanie i gaszenie diody.
Rozwiąłem to nieco i wyszedł mi taki oto wskaźnik biegów do mojego motocykla.
Zaprogramowałem go tak:
$regfile = "m8def.dat"
$crystal = 8000000
Config Portb = Input
Portb = &B11111111
Config Portd = Output
Portd = &B11000111 - 'Stan wyjściowy pali się "L" - luz
Do
If Pinb.0 = 0 Then Portd = &B11111001 'jeśli B.0 jest 0 to PORTD wyświetla bieg "1"
If Pinb.1 = 0 Then Portd = &B10100100 'jeśli B.1 jest 0 to PORTD wyświetla bieg "2"
If Pinb.2 = 0 Then Portd = &B10110000 'jeśli B.2 jest 0 to PORTD wyświetla bieg "3"
If Pinb.3 = 0 Then Portd = &B10011001 'jeśli B.3 jest 0 to PORTD wyświetla bieg "4"
If Pinb.4 = 0 Then Portd = &B10010010 'jeśli B.4 jest 0 to PORTD wyświetla bieg "5"
If Pinb.5 = 0 Then Portd = &B11000111 'jeśli B.5 jest 0 to PORTD wyświetla bieg "L"
Loop
End Konstrukcja przełącznika biegów to rozadzaj przełącznika obrotowego, nie ma więc możliwości zwarcia do masy więcej niż jednego portu.
Dzięki małemu rozmiarowi ATMEGA8 TQFP i rezystorom SMD całość zmieści sie pod wysietlaczem 20mm.
Urządenie uruchomiłem na płytce testowej i działa, jednakże..... wydaje mi sie to wszystko zbyt proste! Musiałem gdzieś zrobić jakiś błąd.
Będę Wam bardzo wdzięczny za pomoc i wszelakie uwagi.
Pozdrawiam
Proszę umieszczać listingi programów w znacznikach "Code". [c_p]