Mike
Guest
Fri Oct 13, 2006 5:56 pm
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

.
}
}
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.
--
pozdrawiam
Mike
[WRO][M.T.Fuji]
[GG:1303401] mikemtb małpa o2 pl
http://mikemtb.org http://www.intersport-team.pl/
IM
Guest
Fri Oct 13, 2006 6:23 pm
Quote:
int main(void)
{
DDRB = 0xFF; .....ustawiem port B na wyjcia, a D zosta wejciowy-
takie
podobno s porty domylnie....
while(1)
{
PORTB |=_BV(0); // ....ustawiem port B0 w stan wysoki....
if (PORTD |=_BV(6)) PORTB |=_BV(1); //...no i teraz wg. mnie jeeli
zewr
port B0 i D6, to na D6 te pojawi si stan wysoki i na B1 powinien by
te
wysoki, no ale nie dziaa oczywicie

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