Also dein Beispiel hat leider nicht getan, ich habe deine Idee mal versucht umzusetzen.
Code:
//
// ATMega644
// lcd-routines.c, lcd-routines.h
//
#include <avr/io.h>
#include <util/delay.h>
#include <avr/interrupt.h>
#include <avr/pgmspace.h>
#include <stdlib.h>
#include "lcd-routines.h"
uint8_t tasten;
int main(void)
{
DDRD = 0x00; // Pins sind Eingang
PORTD = 0xff; // mit aktiviertem PullUp, Taster schalten nach GND
// Initialisierung des LCD
// Nach der Initialisierung müssen auf dem LCD vorhandene schwarze Balken
// verschwunden sein
lcd_init();
lcd_string("LCD Start !!!");
_delay_ms(100); //Gibt einem die moeglichckeit zu lesen was auf dem LCD steht
lcd_home();
while(1)
{
switch((tasten))
{
case 1: lcd_string("Das ist Taste 0"); lcd_home(); break;
case 2: lcd_string("Das ist Taste 1"); lcd_home(); break;
case 3: lcd_string("Das ist Taste 2"); lcd_home();break;
case 4: lcd_string("Das ist Taste 3"); lcd_home(); break;
default: lcd_home(); lcd_string("Taste druecken");
}
}
return(0);
}
Nur möchte ich das Programm relative einfach halten damit man es gut lesen und relative kann.
Ich möchte stat 0b00000001 das (1 << PD0) benutzen, weil man Dan sofort erkennt, was gemeind ist.
Nun wie setz ich so was um?
Danke
Lesezeichen