Jeti
28.03.2013, 23:05
Hallo an alle!
Ich habe mich mal wieder vor meine kleine Platine gesetzt und wollte mir zur Übung und zum verdeutlichen ein kleines Programm mit Array´s schreiben. Ziel des Programmes PortA als Eingang des IC in ein Array zu quetschen und das dann mit einem vorgegebenen Array zu vergleichen. Stimmen die beiden Arrays überein sollen 8 LED´s die am PortB sind blinken.
Leider tut sich gar nichts und ich bin mir nicht sicher wo der Fehler liegt. Ich habe jetzt schon eine ganze Weile rumprobiert aber es will nicht wirklich klappen. Ich kopiere hier mal den Code. Ich bin mir sicher das das für jeden anderen voll Offensichtlich ist warum das nicht funktionieren will ;).
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
#define Ausgang DDRB
#define Eingang DDRA
#define LED1 PB0
#define LED2 PB1
#define LED3 PB2
#define LED4 PB3
#define LED5 PB4
#define LED6 PB5
#define LED7 PB6
#define LED8 PB7
#define LEDS PORTB
int n;
Ausgang=0xFF;
Eingang=0x0;
LEDS=0b11111111;
int v[8];
v[0]=1;
v[1]=0;
v[2]=1;
v[3]=0;
v[4]=1;
v[5]=0;
v[6]=1;
v[7]=0;
int p[8];
int x;
int z;
while(1)
{
z=0;
for (x=0; x<8;x++){
p[x]=PINA&(1<<(PINA+x));
}
for (n=0; n<8; n++){
if(v[n]==p[n]){
z++;
}
if (z==7)
{ LEDS=0b11111111;
_delay_ms(1000);
LEDS=0b00000000;
_delay_ms(1000);
}
else
LEDS=0b00000000;
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gruß und vielen Lieben Dank
Jeti
Ich habe mich mal wieder vor meine kleine Platine gesetzt und wollte mir zur Übung und zum verdeutlichen ein kleines Programm mit Array´s schreiben. Ziel des Programmes PortA als Eingang des IC in ein Array zu quetschen und das dann mit einem vorgegebenen Array zu vergleichen. Stimmen die beiden Arrays überein sollen 8 LED´s die am PortB sind blinken.
Leider tut sich gar nichts und ich bin mir nicht sicher wo der Fehler liegt. Ich habe jetzt schon eine ganze Weile rumprobiert aber es will nicht wirklich klappen. Ich kopiere hier mal den Code. Ich bin mir sicher das das für jeden anderen voll Offensichtlich ist warum das nicht funktionieren will ;).
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
#define Ausgang DDRB
#define Eingang DDRA
#define LED1 PB0
#define LED2 PB1
#define LED3 PB2
#define LED4 PB3
#define LED5 PB4
#define LED6 PB5
#define LED7 PB6
#define LED8 PB7
#define LEDS PORTB
int n;
Ausgang=0xFF;
Eingang=0x0;
LEDS=0b11111111;
int v[8];
v[0]=1;
v[1]=0;
v[2]=1;
v[3]=0;
v[4]=1;
v[5]=0;
v[6]=1;
v[7]=0;
int p[8];
int x;
int z;
while(1)
{
z=0;
for (x=0; x<8;x++){
p[x]=PINA&(1<<(PINA+x));
}
for (n=0; n<8; n++){
if(v[n]==p[n]){
z++;
}
if (z==7)
{ LEDS=0b11111111;
_delay_ms(1000);
LEDS=0b00000000;
_delay_ms(1000);
}
else
LEDS=0b00000000;
}
}
}
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
Gruß und vielen Lieben Dank
Jeti