hi
ich bin ziemlich neu in der microcontroller programmierung...
habe vorher aber schon mit c++ gearbeitet
so, ich versuche einen atmel tiny 2313 zu programmieren und habe auch einen code geschrieben, der sich fehlerfrei compilieren lässt
allerdings denke ich, dass der nicht so läuft wie er soll und wollte das ein erfahrener User nochmal drüberschaut, ob die befehle stimmen und er macht was er soll, damit ich den nicht umsonst einlöte(habe es immer daneben geschrieben)
Ausserdem hoffe ich vielleicht ein paar verbesserungsvörschläge und tipps zu bekommen
Danke
Code:
#include <avr/io.h>
int main () {
DDRB = 0x00; // B Eingänge
PINB = 0x00; //jeden Eingang benutzen
DDRD = 0xFF; // D Ausgänge
PORTD = 0x11; //Standard: D0,D4 gesetzt
DDRD = 0xFF; // A Ausgänge
PORTD = 0x00;
while(1)
{
if ((!PINB1 & (1<<PINB1)) || ( !PINB2 & (1<<PINB2)) ) // Wenn B1 oder B2 == 0 dann
{
PORTD = 0x00; // Alle B Ports auf 0
}
if ( PINB4 & (1<<PINB4) ) // Wenn B1 == 1 dann
{
PORTD = 0x17; //D0,D1,D2,D4 gesetzt
}
if ( PINB3 & (1<<PINB3) ) // Wenn B1 == 1 dann
{
PORTD = 0x19; //D0,D1,D4 gesetzt
}
if ((!PINB0 & (1<<PINB0)) ) // Wenn B0 == 0 dann
{
PORTD = 0x11; //Standard: D0,D4 gesetzt
}
if((bit_is_set (PORTD,4))) //2LEDs abwechselnd blinken
//Wenn PortD4 gesetzt
{
PORTA &= ~(1 << 4); //PortD4 auf 0 setzen
PORTD |= (1 << 5); //PortD5 auf 1 setzen
}
else
{
PORTA &= ~(1 << 5); //PortD5 auf 0 setzen
PORTD |= (1 << 4); //PortD4 auf 1 setzen
}
}
return 0;
}
Lesezeichen