Hi,
also wenn du in deinen Code den richtigen Port schreibst funktioniert er ![Zwinkern](https://www.roboternetz.de/phpBB2/images/smiles/icon_wink.gif)
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 ![Zwinkern](https://www.roboternetz.de/phpBB2/images/smiles/icon_wink.gif)
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