logo elektroda
logo elektroda
X
logo elektroda
REKLAMA
REKLAMA
Adblock/uBlockOrigin/AdGuard mogą powodować znikanie niektórych postów z powodu nowej reguły.

oczekiwanie na nacisniecie przycisku - ROZWIĄZANY

farmazon3000 27 Kwi 2009 12:10 1433 2
REKLAMA
  • #1 6461788
    farmazon3000
    Poziom 15  
    program ma byc zatrzymany aż do momentu kiedy nacisnięty zostanie przycisk

    schemat podłączenia przycisku:

    oczekiwanie na nacisniecie przycisku - ROZWIĄZANY

    (wewn. pull-up włączony, kondensator tłumi drgania styków)

    program:
    
    #define F_CPU 1000000UL
    
    #include <avr/io.h>
    #include <util/delay.h>
    #include <stdlib.h>
    
    int main(void)
    {
    	DDRC = 0x00;	//PC wejscia
    	PORTC |= (1<<PC7)|(1<<PC6);	//PC7..6 podciaganie do +
    
    	//czekaj na przycisk
    	while( 1 )
    	{
    		if(bit_is_clear(PINC,7)) break;
    	}
    
    	//reszta programu 
    
    	return 0;
    }
    


    jednak NIE działa :(

    otóż nie zatrzymuje się tylko przeskakuje sobie tę pętlę while

    pull-up mierzony miernikiem i jest włączony, dlaczego tak jest?
  • REKLAMA
  • Pomocny post
    #2 6461887
    piti___
    Poziom 23  
    Najprawdopodobniej zanim kondensator się naładuje po włączeniu podciągania to sprawdzasz stan i otrzymujesz stan niski.
  • #3 6461977
    farmazon3000
    Poziom 15  
    bingo!

    dodałem małe opóźnienie
    _delay_ms(200);
    i teraz działa, dzięki wielkie

    
    #define F_CPU 1000000UL 
    
    #include <avr/io.h> 
    #include <util/delay.h> 
    #include <stdlib.h> 
    
    int main(void) 
    { 
       DDRC = 0x00;   //PC wejscia 
       PORTC |= (1<<PC7)|(1<<PC6);   //PC7..6 podciaganie do + 
    
       _delay_ms(200);
    
       //czekaj na przycisk 
       while( 1 ) 
       { 
          if(bit_is_clear(PINC,7)) break; 
       } 
    
       //reszta programu 
    
       return 0; 
    }
REKLAMA