emarcus napisał:
W Atmega8 pin 1(PC6) normalnie jest RESET i dopoki nie zmienisz odpowiedniego fusebit (patrz str. 223; tabela 87 bit#7), ten pin nie spelnia roli GIO (PC6), wiec processr go nie "widzi". Nie doradzam jednak tej zmiany!
W moim układzie (chcę zrobić zegar binarny) ten pin ma działać jako reset, więc tak jest podłączony. Ale czy podłączam reset do zasilania czy odłączam to nie widzę różnicy w działaniu układu. Rozumiem, że podanie "0" na reset, resetuje układ, tak? Więc w sumie po co tam jest potrzebna "1" cały czas skoro to i tak nie robi różnicy?
emarcus napisał:
Jezeli wczesniej podlaczales do masy porty skonfigurowane jako wyjscia (przez wlaczniki, chocby tylko na krotki czas) to jest teoretyczna szansa ze te porty moga byc uszkodzone. Jezeli na wyjsciu pojawil sie programowo stan wysoki i w tym czasie przycisk byl zwarty do masy to skutek jest oczywisty.
e marcus
Mam nadzieję, że tak się nie stało
BoskiDialer napisał:
W ten sposób przez przypadek powstanie coś na wzór pwm na pinach. PortB będzie trzymał wartość, podobnie PortC, ale do PortD są 3 przypisania (nie ustawienia bitu), pierwsze przypisanie ustawi jedynkę na pinie 5 kasując inne, drugie ustawi na 6 kasując inne, trzecie na 7 kasując inne. Przy dobrej optymalizacji pętla będzie miała 8 cykli, wtedy na PD5 i PD6 pojawi się 0,62V, na PD7 pojawi się 3,75V średnie. Przy słabszej optymalizacji pętla będzie miała 12 cykli, na PD5 i PD6 będzie 0,83V, na PD7 3,33V średnio.
Dzięki za wyjaśnienie, właśnie w tym tkwił problem. Myślałem, że nie ma różnicy pomiędzy instrukcjami PORTB |= _BV(0); i PORTB = _BV(0);.
Dopiero zaczynam zabawę z Atmegą i w ogóle z programowaniem mikrokontrolerów, a nie mogłem znaleźć żadnego dobrego tutoriala z ich programowania, tylko na różnych stronach jakieś drobiazgi.
Czyli teraz rozumiem tak:
PORTB |= _BV(0); //przypisanie tylko na PB0 "1"
PORTB &= ~_BV(0); //przypisanie tylko na PB0 "0"
PORTB = _BV(0); //przypisanie na PB0 "1", na resztę PORTB "0"
PORTB = ~_BV(0); //przypisanie na PB0 "0", na resztę PORTB "1"
Możecie potwierdzić?
Jeszcze jedno pytanie, czy oprócz resetu i wejścia na kwarc, mogę korzystać ze wszystkich innych portów I/O bez ustawiania żadnych fuse bitów i nie będzie dziwnych wartości?