[AVR] Jak zrealizować nasłuch na porcie

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.

Reply to
Mike
Loading thread data ...

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

Reply to
IM

ElectronDepot website is not affiliated with any of the manufacturers or service providers discussed here. All logos and trade names are the property of their respective owners.