Skocz do zawartości

PINB i DDRB razem , dlaczego nie działa


multidata314

Pomocna odpowiedź

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
Link do komentarza
Share on other sites

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
Link do komentarza
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

Link do komentarza
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!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   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...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.