eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaObsluga przycisku - atmega8Re: Obsluga przycisku - atmega8
  • Data: 2012-01-31 01:41:31
    Temat: Re: Obsluga przycisku - atmega8
    Od: "Grzegorz Niemirowski" <g...@p...onet.pl> szukaj wiadomości tego autora
    [ pokaż wszystkie nagłówki ]

    Pawel <ppf9@USUN_TOpoczta.fm> napisał(a):
    > Witam wszystkich
    > Co ja robie nie tak?
    > Probuje obsluzyc przycisk, ale nie potrafie.
    > Przycisk podpiety do PD7. PD7-przycisk-GND
    > diody PB0 i PB1
    > Pb0-rezystor100Omow-dioda-GND
    > to samo z druga dioda.
    > #define F_CPU 1000000L /* Częstotliwość kwarcu */
    > #include <avr/io.h>
    > #include <util/delay.h> /* Kiedyś <avr/delay.h> */
    > int main(void)
    > {
    > DDRB = 0b11111111;
    > DDRD = 0b00000000;
    > PORTD = 0b11111111;
    > for (;;)
    > {
    > if((PIND & 0b10000000))
    > //if(bit_is_clear(PIND,7))
    > {
    > PORTB |= (1<<0);
    > _delay_ms(125);
    > }
    > else
    > {
    > PORTB |= (1<<1);
    > _delay_ms(125);
    > }
    > }
    > return 0;
    > }

    Mógłbyś łaskawie napisać co Ci nie działa. Tzn czego oczekujesz a tego nie
    ma. Bo z tego co widzę, to kod ogólnie reaguje na przyciski. Obecnie jest
    tak, że jeśli przycisk nie jest wciśnięty (na początku), to dzięki
    wewnętrznemu podciągnięciu najstarszy bit w PIND będzie ustawiony i włączy
    Ci się dioda podłączona do PB0 (o ile podłączyłeś ją w dobrym kierunku).
    Jeśli teraz wciśniesz przycisk, to włączy się dioda podłączona do PB1 a stan
    diody podłączonej do PB0 nie zmieni się. Analogicznie, jeśli w momencie
    włączenia zasilania przycisk był wciśnięty, zaświeci się dioda podłączona do
    PB1. W momencie puszczenia przycisku włączy się dioda podłączona do PB0 a
    stan diody podłączonej do PB1 nie zmieni się. Twój kod jedynie ustawia bity
    portu B a nigdy ich nie zeruje. Jeśli przycisk ma przełączać diody, to w
    jednym z ifów zmień
    |=
    na
    &=~
    I w sumie to nie wiem po co Ci tutaj opóźnienie.

    --
    Grzegorz Niemirowski
    http://www.grzegorz.net/
    OE PowerTool i Outlook Express: http://www.grzegorz.net/oe/
    Uptime: 5 days, 23 hours, 19 minutes and 35 seconds

Podziel się

Poleć ten post znajomemu poleć

Wydrukuj ten post drukuj


Następne wpisy z tego wątku

Najnowsze wątki z tej grupy


Najnowsze wątki

Szukaj w grupach

Eksperci egospodarka.pl

1 1 1

Wpisz nazwę miasta, dla którego chcesz znaleźć jednostkę ZUS.

Wzory dokumentów

Bezpłatne wzory dokumentów i formularzy.
Wyszukaj i pobierz za darmo: