eGospodarka.pl
eGospodarka.pl poleca

eGospodarka.plGrupypl.misc.elektronikaObsluga przycisku - atmega8Re: Obsluga przycisku - atmega8
  • Path: news-archive.icm.edu.pl!news.icm.edu.pl!newsfeed.pionier.net.pl!news.icpnet.pl!
    .POSTED!not-for-mail
    From: "Grzegorz Niemirowski" <g...@p...onet.pl>
    Newsgroups: pl.misc.elektronika
    Subject: Re: Obsluga przycisku - atmega8
    Date: Tue, 31 Jan 2012 02:41:31 +0100
    Organization: ICP News Server
    Lines: 56
    Message-ID: <jg7gsf$cjv$1@news.icpnet.pl>
    References: <jg7c70$f94$1@inews.gazeta.pl>
    NNTP-Posting-Host: 178235204013.unknown.vectranet.pl
    Mime-Version: 1.0
    Content-Type: text/plain; format=flowed; charset="iso-8859-2"; reply-type=response
    Content-Transfer-Encoding: 8bit
    X-Trace: news.icpnet.pl 1327974096 12927 178.235.204.13 (31 Jan 2012 01:41:36 GMT)
    X-Complaints-To: a...@i...pl
    NNTP-Posting-Date: Tue, 31 Jan 2012 01:41:36 +0000 (UTC)
    X-Priority: 3
    X-MSMail-Priority: Normal
    X-Newsreader: OE PowerTool 4.5
    X-MimeOLE: Produced By Microsoft MimeOLE V6.00.2900.6157
    X-WWW: http://www.grzegorz.net/
    Xref: news-archive.icm.edu.pl pl.misc.elektronika:624773
    [ ukryj 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: