Witam,
od kilku dni próbuje zrobić menu na wyświetlaczu LCD bez większego powodzenia, chciał bym zrobić kilka tekstów i po każdym nacisnięciu przycisku żeby się zmieniały. chciałem to zrobić za pomocą funkcji switch ale ogólnie pierwszy problem to:
* nie do końca wiem jak w programie ustawić porty żeby działały jak wejścia oraz podciągnąć je do logicznej jedynki
drugu problem:
to to że coś pewnie pokręciłem w zamieszczonym niżej kodzie bo mniej więcej - bardziej mniej program działa ale działa tek że na wyświetlaczu pojawia się tekst tylko jak trzymam switch-a i nie zmienia się po koleji na
1.xxx
2.xxx
3.xxx
tylko losowo jak mu się chce
od kilku dni szukam na forum i narazie udało mi sie to doprowadzić do takiej postaci
od kilku dni próbuje zrobić menu na wyświetlaczu LCD bez większego powodzenia, chciał bym zrobić kilka tekstów i po każdym nacisnięciu przycisku żeby się zmieniały. chciałem to zrobić za pomocą funkcji switch ale ogólnie pierwszy problem to:
* nie do końca wiem jak w programie ustawić porty żeby działały jak wejścia oraz podciągnąć je do logicznej jedynki
drugu problem:
to to że coś pewnie pokręciłem w zamieszczonym niżej kodzie bo mniej więcej - bardziej mniej program działa ale działa tek że na wyświetlaczu pojawia się tekst tylko jak trzymam switch-a i nie zmienia się po koleji na
1.xxx
2.xxx
3.xxx
tylko losowo jak mu się chce
od kilku dni szukam na forum i narazie udało mi sie to doprowadzić do takiej postaci
#include <avr/io.h>
#include <inttypes.h>
#include <bity.h>
#include <util/delay.h>
#include <hd44780.c>
#define KEY_PIN 0
#define KEY (1<<KEY_PIN)
int main(void)
{
DDRC &= ~KEY;
PORTC |= KEY;
int M=0;
LCD_Initalize();
LCD_Clear();
LCD_WriteText("tutaj bedzie");
LCD_GoTo(0,1);
LCD_WriteText("jakis tekst");
_delay_ms(300);
while (1)
{
if ( !(PINA&KEY) )
{
M++;
if(M==3) M=0;
switch(M)
{
case 0:
LCD_Clear();
LCD_WriteText("1.xxx");
break;
case 1:
LCD_Clear();
LCD_WriteText("2.Pomiar");
break;
case 2:
LCD_Clear();
LCD_WriteText("3.Pomiar");
break;
}
}
}
return 0;
}