[AVR] Jak zrealizować nasłuch na porcie

Oct 13, 2006 1 Replies

Witam Nie wiem czy dobrze określiłem pytanie :) Na razie bawię się dość amatorsko w programowanie mikroprocesorów, więc proszę nie bić :)



Chodzi o to, że chcę zrealizować ( programując pod WinAvr w C) coś takiego, że np. na porcie B1 chcę mieć stan wysoki gdy zostanie nacisnięty przycisk. Więc na zdrowy rozum......



int main(void) { DDRB = 0xFF; .....ustawiłem port B na wyjścia, a D został wejściowy- takie podobno są porty domyślnie.... while(1) { PORTB |=_BV(0); // ....ustawiłem port B0 w stan wysoki.... if (PORTD |=_BV(6)) PORTB |=_BV(1); //...no i teraz wg. mnie jeżeli zewrę port B0 i D6, to na D6 też pojawi się stan wysoki i na B1 powinien być też wysoki, no ale nie działa oczywiście :P. } }



Na B1 jest zawsze wysoki, niezależnie od tego czy D6 i B0 są zwarte, czy nie. Dodam, że nie pomaga wstępne ustawienie B1 i B0 w niski.



Więc może ktoś mi poradzi co mam robić :). Dziękuje z góry za porady.


Nie wnikając w to co chcesz uzyskać, to odczyt stanu portu ustawionego jako WE wykonuje się nie przez PORTx tylko PINx (w Twoim przypadku PIND).

Pozdrawiam IM

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required