Skocz do zawartości
multidata314

PINB i DDRB razem , dlaczego nie działa

Pomocna odpowiedź

Napisano (edytowany)

Witam , wchodzie w temat uC i proszę o pomoc (ATmega8a)

DDRB=0b00001111;// ustawienie pinów 0-3 portu B  jako wyjście
DDRB &= ~(1<<PB7);
PORTB |= (1<<PB7);
DDRD &= ~(1<<PD7);
PORTD |= (1<<PD7);

próbowałem też:

DDRB=0b00001111;// ustawienie pinów 0-3 portu B  jako wyjście
//DDRB &= ~(1<<PB7);
PORTB |= (1<<PB7);
DDRD &= ~(1<<PD7);
PORTD |= (1<<PD7);

Dlaczego nóżka D7 ma wysokie napięcie (H) a nóżka  B7 nie ? 

Edytowano przez Gieneq
Formatowanie kodu programu

Udostępnij ten post


Link to post
Share on other sites
(edytowany)

Ponad 8 lat nie programowałem samych AVR ale coś pamiętam.

Chcesz ustawić nóżkę jako wyjście ze stanem wysokim - czyli w obu rejestrach mają pojawić się 1 (1 w DDR to wyjście, nie 0).

Nie pamiętam czy te define'y "PD7, PB7" działają poprawnie. Ale będzie to coś takiego:

DDRB |= (1<<7);

DDRD |= (1<<7);

PORTB |= (1<<7);

PORTD |= (1<<7);

 

ddrc.thumb.JPG.973fd0e94de29fb451360db0bd26f93b.JPG

Edytowano przez Gieneq

Udostępnij ten post


Link to post
Share on other sites

Robiąc DDRB&=~(1<<PB7) ustawiasz PB7 jako wejście(wstawiasz 0 na odpowiedni bit). Jeśli tak zrobisz i dodatkowo ustawisz na tym samym bicie PORTB jedynkę to podepniesz do wejście przez rezystor pociągający do zasilania. Jeśli chcesz ustawić to jako wyjście to musisz zrobić tak jak napisał Gieneq

Udostępnij ten post


Link to post
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Gość
Napisz odpowiedź...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.


×
×
  • Utwórz nowe...