Hallo i_make_it,
wenn gewollt dann kann ich auch noch die Quellen angeben, wo ich diese codes gefunden habe.
Blinken, ist bereits mit den sek. der Uhr abgestimmt, der code ist con hier
Code:
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void) {
DDRD = (1 << PD5);
// Endlosschleife
for (;;) {
PORTD |= (1 << PD5); // bit im Portregister auf 1 setzen => LED leuchtet
_delay_ms(1034); // eine halbe Sekunde warten
PORTD &= ~(1 << PD5); // bit im Portregister auf 0 setzen => LED aus
_delay_ms(1034); // eine halbe Sekunde warten
}
}
das anschalten der LED hatte ich bereis auf einen taster reduziert. der code kommt von hier
Code:
#include <avr/io.h>
int main(void) {
DDRD = 0b01100000;
PORTD = 0x00;
short led1 = 0;
while(1) {
if(PIND & ((1 << PD2))) {
// irgendein Taster gedrückt
if(PIND & (1 << PD2)) {
// Taster 1 gedrückt → LED1 in Warteschlange setzen
led1 = 1;
}
}
else {
// kein Taster gedrückt → Warteschlange abarbeiten
if(led1 == 1) { // LED1 in Warteschlange
led1 = 0; // LED1 aus Warteschlange herausnehmen
PORTD ^= (1 << PD5); // XOR an PD5 anwenden: 1 wenn bisher 0, 0 wenn bisher 1
// }
}
}
}
return 0;
}
ich hoffe das hilft weiter
Lesezeichen