Danke für die Antwort hier ist der code dazu ... wie gesagt nur so zum mal testen, ich bin mich erst am einarbeiten
Code:
// Testprogramm: Blinken und servo
//
#ifndef MCU // Welcher AVR genutzt wird, wird i.A. im Makefile definiert
#define MCU atmega32
#endif
#ifndef F_CPU // kann auch im Makefile definiert sein
#define F_CPU 16000000UL // Takt als LONG definieren, da zu groß für Integer
#endif
#include <avr/io.h> // Namen der IO Register
#include <util/delay.h> // Funktionen zum warten
// Achtung, damit delay richtig funktioniert muß mit Optimierung compiliert werden
int main(void)
{
DDRC = _BV(0); // Nur PC0 als output, _BV(0) = (1<<0) = 1
PORTC = 254; // Pullups auf allen anderen Pins
DDRA = 0xff; // (3)
PORTA = 0x08; // (4)
while (1)
{
PORTC &= 255-_BV(0); // 0 auf Bit 0 Ausgeben, Rest so lassen
_delay_ms(1000); // 100 ms Warten
PORTC |= _BV(0); // 1 auf Bit 0 Ausgeben, Rest so lassen
_delay_ms(1000);
}
}
Edit:
Also ... das ist jetzt nur der Code für die LED's, wobei auch hier meiner meinung nach für 1 Zyklus 2 s gebraucht werden sollten. In meiner Schaltung hat dieser Zyklus ( LED an/aus) aber nur 1 Sekunde.
Was mir jetzt erst auffällt ist, dass da noch steht, dass mit optimierung Compiliert werden soll .... was damit genau gemeint ist, weiss ich zwar nicht, könnte aber vielleicht einen Einfluss haben?
wobei doppelte Taktrate dann schon etwas extrem wäre.
wie gesagt ich habe das auch noch mit delay(5000) ausprobier, wobei das resultat dann einfach 2.5 s war.
Lesezeichen