Hi,
also wenn du in deinen Code den richtigen Port schreibst funktioniert er
Ich habe es gerade mal auf meinem RN-Control mit einem Mega32 und 16MHz getestet.
Du verwendest diese Zeile
DDRA
PORTA
aber schließt die LED an PortC an. Dann kann das nicht funktionieren
Das hier ist der lauffähige Code. Die 100ms habe ich durch 1 Sekunde ersetzt, damit man das besser sieht.
Code:
/*
* AVRGCC2.c
*
* Created: 09.04.2012 17:03:22
* Author: Daniel
*/
#include <avr/io.h>
#include <util/delay.h> // Funktionen zum warten
#define F_CPU 16000000UL
int main(void)
{
DDRC = _BV(0); // Nur PC0 als output, _BV(0) = (1<<0) = 1
PORTC = 254; // Pullups auf allen anderen Pins
while (1)
{
PORTC &= 255-_BV(0); // 0 auf Bit 0 Ausgeben, Rest so lassen
_delay_ms(1000); // 1000 ms Warten
PORTC |= _BV(0); // 1 auf Bit 0 Ausgeben, Rest so lassen
_delay_ms(1000);
}
}
Alternativ kannst du den Code auch so schreiben:
Code:
while (1)
{
PORTC ^= 0x01;
_delay_ms(1000);
}
Das macht den Code etwas kleiner und du hast die selbe Funktion.
PS: Und er ist bischen übersichtlicher
Lesezeichen