Bringt auf jeden fall mehr spaß selbst drauf zu kommen.
Hab das jetzt so gemacht:
Code:
#include <avr/io.h>
#include <stdint.h>
#define F_CPU 1000000UL
#include <util/delay.h>
int main (void)
{
uint8_t i;
DDRA |= (1<<DDA0) | (1<<DDA1);
DDRD &= ~(1<<DDD0);
PORTA &= ~(1<<PA0) | (1<<PA1);
OSCCAL = 0x00;
while(1)
{
if ((PIND & (1<<PD0)) != 0)
{
PORTA |= (1<<PA1);
for (i=1; i<=100; i=i+1)
{
_delay_ms(10);
}
PORTA |= (1<<PA0);
}
else
PORTA &= ~(1<<PA0);
PORTA &= ~(1<<PA1);
}
return 0;
}
wenn ich jetzt den Taster drück, dauert das aber ca. 3 sec bis die Lampe leuchtet. sollte soch nur 1 sec dauern, denke ich. 10ms mal 100 sind doch 1000ms also 1 sec. is alles komisch. Dann gibts da noch das problem das es nochmal ca. die gleiche zeit dauert bis beide LEDs wieder ausgehen. Hast da ne Idee? Glaub ich besorg mir mal ein Quarz... hilft mir auf jeden fall mit den Zeiten.
Ich brenne mit "Programmers Notepad 2". Drück da auf "programm". Das meinst du doch, ne? Ich hab das mit den Gefahren bei Fuses schon gehört.
Werde auch nur was ändern wenn ich mir 100% sicher bin.
Kuck mir gleich mal Timer an.
Lesezeichen