Bastler wrote:
> Hier nochmal der komplette Quelltext:
>
>
> //Includes
> #include <avr/io.h> //Header mit I/O Registern aus WinAVR
> #include <avr/interrupt.h> //Interrupts
> #include <inttypes.h> //Inttypes der Atmels
>
> //Defines
> #define setbit(ADRESSE,BIT) (ADRESSE |= (1<<BIT)) //vereinfachter
> Zugrriff auf ein Bit
> #define clearbit(ADRESSE,BIT) (ADRESSE &= ~(1<<BIT))//vereinfachter
> Zugrriff auf ein Bit
> #define checkbit(ADRESSE,BIT) (ADRESSE & (1<<BIT)) //vereinfachter
> Zugrriff auf ein Bit
>
>
>
> /***********************************************************************
*****************************
>
> "delay1ms"
> Die Funktion verzögert mit einem 8-Bit Timer um 1ms.
> Es sind Verzögerungen bis 65sec möglich => delay(65535)
>
> ************************************************************************
****************************/
>
> void delay1ms(uint16_t ms)
> {
> TCCR0A = 0x00; //Timer initialisieren (s.S. 110)
> setbit(TCCR0A, CS00); //Vorteiler: keiner (1)
> ms *= 62;
> while (ms)
> {
> while(!(checkbit(TIFR0, TOV0))){} //warte solange kein
> Überlauf (TOV0=0), wenn Überlauf (TOV0=1) wird while verlassen
> setbit (TIFR0, TOV0); //Flag wird durch setbit wieder
> gesetzt (Datenblatt)
> ms--;
> }
> } //Ende der Funktion
>
>
>
> void main(void)
> {
> DDRC=0xff; //PORTC ist Ausgang
> DDRF=0x00; //PORTF ist Eingang
> PORTF=0xff; //pullups aktivieren für Eingang => 5V an den PINS, zum
> Schalten auf Masse ziehen!
>
> while(1)
> {
> PORTC=PINF;
> }
> } //Ende main
>
>
>
>
>
> Hab gerade schon überlegt was es an dem C auszusetzten gibt ;-)
> Klar, wenn man die Defines nicht mit postet.
Ja. Aber daran liegt es nicht mehr. Das einfachst Programm
verwendet das gar nicht mehr
Hmm.
while(1)
{
PORTC = PINF;
}
Das ist so einfach wie nur was. Das muesste eigentlich
gehen. Wenn du einen Pin am F Port auf Masse ziehst
muesste sich am C Port was tun.
Hmm
Was ist mit
void main(void)
{
DDRC=0xff; //PORTC ist Ausgang
DDRF=0x00; //PORTF ist Eingang
PORTF=0xff; //pullups aktivieren für Eingang => 5V an den PINS, zum
while(1)
{
PORTC = 0xAA;
}
}
Jetzt müsste am C Port abwechselnd 1 Led brennen und 1 aus sein.
(mal schauen, ob dein Prozessor überhaupt arbeitet).
Wenn das geht: Probier mal anstelle des F Ports den B Port
void main(void)
{
DDRC = 0xff; //PORTC ist Ausgang
DDRB = 0x00; //PORTB ist Eingang
PORTB = 0xff;
while(1)
{
PORTC = PINB;
}
}