Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

Skasowano przez autora z tematu o numerze 3629496

_Lewitan_ 07 Lis 2019 22:35 21 0
  • #1
    _Lewitan_
    Poziom 2  
    Trochę więcej grzebania i się udało, dziękuje za podpowiedzi, wysyłam kod wynikowy.
    Ps. zmieniłem położenie ledów do portów C.

    Code:
    [syntax=c][/syntax]
    
    #define SWITCH PB1
    #define SWITCH1 PB2
    #define LED PC0
    #define LED1 PC1

    void set(uint8_t led, uint8_t pos, char* text);
    void reset(void);
    int main(void) {
       LCD_Initalize();
       
       LCD_WriteCommand(0x40); // set CGRAM to zero position.
       for (uint8_t i=0; i!=8; i++) LCD_WriteData(_scharfes_S[i]); // Transfer bytes to LCD.
       for (uint8_t i=0; i!=8; i++) LCD_WriteData(_p[i]);
       for (uint8_t i=0; i!=8; i++) LCD_WriteData(_i[i]);
       LCD_WriteCommand(0x80);
       
       DDRC |= (1<<LED) | (1<<LED1);
          
       PORTB |= (1<<SWITCH); //PULL UP
       PORTB |= (1<<SWITCH1);
       PORTC = 0;
       while (1) {
          if(!(PINB & 2)) { //przycisk jest wcisniety
             set(LED, 0, "Ich hei\x8\x65 Artur");
          }
          else if(!(PINB & 4)) {
             set(LED1, 1, "\x1P\x2WET");
          }
          else {
             reset();
          }
       }
    }

    void set(uint8_t led, uint8_t pos, char* text) {
       PORTC |= (1<<led);
       LCD_GoTo(0,pos);
       LCD_WriteText(text);
    }

    void reset(void) {
       PORTC = 0;
       LCD_Clear();
    }




    ----
    Skasowano z tematu: AVR, program z przyciskami
    przez _Lewitan_ dnia 07 Lis 2019 22:36