Ich stell mal den Sourcecode rein, vlt hilft der weiter.
Code:
/*****************************************************************/
/* */
/* */
/* Experiment.c */
/* AT90S2313 @ 3,6864 MHz */
/* */
/*****************************************************************/
#include<stdint.h>
#include<avr/io.h>
#define F_CPU 3686400UL
#include<util/delay.h>
int main(void)
{
DDRB = (1 << DDB0) | (1 << DDB1) | (1 << DDB2) | (1 << DDB3) | (1 << DDB4);
DDRD = (1 << DDD4) | (1 << DDD5); //Ausgänge werden festgelegt
PORTB = (1<<DDB2); //Autoampel wird auf rot gesetzt
PORTD = (1<<DDD5) | (1<<DDD2); //Fußgängerampel wird rot, Pull-Up Widerstand
//wird am Eingangspin PD2 aktiviert
uint8_t i;
for (i=1; i!=1; i+0);
{
_delay_s(5);
PORTB |= (1<<DDB1); //Autoampel rt,ge
_delay_s(2);
PORTB = (1<<DDB0); //AA gn
_delay_s(20);
PORTB = (1<<DDB1); //AA ge
_delay_s(2);
PORTB = (1<<DDB2); //AA rt
_delay_s(2);
PORTB |= (1<<DDB4); //FA rt,ge
_delay_s(2);
PORTB |= (0<<DDB3) | (0<<DDB4);
PORTD |= (1<<DDD5); //FA gn
_delay_s(8);
PORTB |= (1<<DDB4) |(0<<DDB5); //FA ge
_delay_s(2);
PORTB |= (0<<DDB4);
PORTD |= (1<<DDD5); //FA rt
}
}
Lesezeichen