ich wollte kurz fragen ob der Code für die Tabelle so richtig ist.
Das ganze bezieht sich auf eine 7 Segment Anzeige.
Code:
#include <avr/io.h>
#include <avr/interrupt.h>
#define warte(Dauer)\
for(uint16_t z2=Dauer; z2>0; z2--)\
{ for(uint16_t z1=65535; z1>0; z1--)\
{asm volatile("NOP");\
}\
}
uint8_t Marker1 = 0;
uint8_t Marker2 = 0;
#define Taster_1_D PD2
#define Taster_2_D PD3
uint8_t Tab [10] [2];
#define B 0
#define D 1
int Ro = 0;
int Lo = 1;
int Om = 2;
int M = 3;
int Ru = 0;
int Lu = 1;
int Um = 2;
int Do = 3;
int main(void)
{
DDRD |= 0b11110000;
DDRB |= 0b00111111;
Tab [Ro] [D] = 64; //RechtsO
Tab [Om] [D] = 32; //ObenM
Tab [M] [D] = 128; //Mitte
Tab [Ru] [B] = 4; //RechtsU
Tab [Lu] [B] = 32; //LinksU
Tab [Um] [B] = 16; //UntenM
Tab [Do] [B] = 2; //Dot
Tab [Lo] [B] = 128; //LinksO
while(1)
{
//1
Tab [0][D] = (1<<Ro)|(0<<Om)|(0<<M);
Tab [0][B] = (1<<Ru)|(0<<Lu)|(0<<Um)|(0<<Do)|(0<<Lo);
warte(1000)
//2
Tab [1][D] = (1<<Ro)|(1<<Om)|(1<<M);
Tab [1][B] = (0<<Ru)|(1<<Lu)|(1<<Um)|(1<<Do)|(0<<Lo);
warte(1000)
//3
Tab [2][D] = (1<<Ro)|(1<<Om)|(1<<M);
Tab [2][B] = (1<<Ru)|(0<<Lu)|(1<<Um)|(0<<Do)|(0<<Lo);
warte(1000)
//4
Tab [3][D] = (1<<Ro)|(0<<Om)|(1<<M);
Tab [3][B] = (1<<Ru)|(0<<Lu)|(0<<Um)|(0<<Do)|(1<<Lo);
warte(1000)
//5
Tab [4][D] = (0<<Ro)|(0<<Lo)|(1<<Om)|(1<<M);
Tab [4][B] = (1<<Ru)|(0<<Lu)|(1<<Um)|(1<<Do)|(1<<Lo);
warte(1000)
//6
Tab [5][D] = (0<<Ro)|(1<<Om)|(1<<M);
Tab [5][B] = (1<<Ru)|(1<<Lu)|(1<<Um)|(1<<Do)|(1<<Lo);
warte(1000)
//7
Tab [6][D] = (1<<Ro)|(0<<Lo)|(1<<Om)|(0<<M);
Tab [6][B] = (1<<Ru)|(0<<Lu)|(0<<Um)|(0<<Do)|(0<<Lo);
warte(1000)
//8
Tab [7][D] = (1<<Ro)|(1<<Om)|(1<<M);
Tab [7][B] = (1<<Ru)|(1<<Lu)|(1<<Um)|(1<<Do);
warte(1000)
//9
Tab [8][D] = (1<<Ro)|(1<<Om)|(1<<M);
Tab [8][B] = (1<<Ru)|(0<<Lu)|(1<<Um)|(1<<Do)|(1<<Lo);
warte(1000)
//0
Tab [9][D] = (1<<Ro)|(1<<Lo)|(1<<Om)|(0<<M);
Tab [9][B] = (1<<Ru)|(1<<Lu)|(1<<Um)|(0<<Do)|(1<<Lo);
warte(1000)
}
}







