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

[C] Problem z obsługą przycisków Atmega

woser 14 Gru 2010 19:21 1369 1
REKLAMA
  • #1 8868522
    woser
    Poziom 10  
    
    { 
     LCD_clear(); 
     LCD_putstr_P(PSTR("TTTTTT1")); 
     LCD_xy(3,1); 
     LCD_putstr_P(PSTR("1")); 
         
    } 
    void menu2(void) 
    { 
     LCD_clear(); 
     LCD_putstr_P(PSTR("TTTTTT2")); 
     LCD_xy(1,1); 
     LCD_putstr_P(PSTR("2")); 
    } 
    
    int main(void) 
    { 
     int i=0; 
    int podmenu=0; 
      LCD_init(); 
      
      DDRA  = 0x00; 
      PORTA = 0x03; 
      LCD_xy(0,0); 
      LCD_putstr_P(PSTR("HELLO")); 
      LCD_xy(0,1); 
      LCD_putstr_P(PSTR(".............")); 
      
      delayms(3000); 
      LCD_clear(); 
      LCD_xy(4,0); 
      LCD_putstr_P(PSTR("<<MENU>>")); 
      while(1) 
      {    
        if((PINA & 0x01)) 
        { 
          
          i++; 
          /* opóżnienie aż drgania na stykach ustaną */ 
           delayms(80); 
           while((PINA & 0x01)) {} 
           delayms(80); 
          /* oczekiwanie na zwolnienie przycisku */ 
        } 
        if((PINA & 0x02)) 
        { 
          
          podmenu++; 
          /* opóżnienie aż drgania na stykach ustaną */ 
           delayms(80); 
           while((PINA & 0x01)) {} 
           delayms(80); 
          /* oczekiwanie na zwolnienie przycisku */ 
        } 
        
        
        switch(i) 
        { 
            case 1: 
            { 
                  LCD_clear(); 
                  LCD_xy(4,0); 
                  LCD_putint(podmenu,10); 
                break; 
            } 
            case 2: menu2(); break; 
            
            default : 
                        {LCD_clear(); LCD_xy(4,0); LCD_putstr_P(PSTR("<<MENU>>")); i=0;} 
        } 
    } 
    } 
    


    Ehh do tej pory programowałem w Bascomie no i przyszedl czas na C i zaczyna się rozpacz, posiadam zestaw uruchomieniowy AND-techa EVB 4.3 v2 podlaczam pod PORTA dwa przyciski i gdy usunę jeden if dla pierwszego przycisku dziala wszystko ok ale gdy podlacze drugi i dodam if, zaczynaja sie dziwne rzeczy
  • REKLAMA
  • Pomocny post
    #2 8868599
    landy13
    Poziom 31  
    Na temat debouncingu poczytaj ten temat. Warto.
REKLAMA