PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Kann meine Code nicht compailieren(AVR USB-Lab)



Aslan
09.08.2009, 22:06
Ich bekomme es nicht hin, mein Code zu compalieren.
Könntet ihr bitte mir beim finden der Fehler Helfen?

Am PB3 ist ein Led angeschlossen das beim betätigen der Taste am PB5 leuchten soll.



/************************************************** **********************************************
* Project: USB AVR-Lab
* Author: Christian Ulrich
* Contact: christian at ullihome dot de
*
* Creation Date: 2007-09-24
* Copyright: (c) 2007 by Christian Ulrich
* License: GPLv2
*
* Changes:
************************************************** *********************************************/

#include "avr/io.h"
#include "avrlab.h"
#include "stdint.h"


int main(void)
{
avrlab_init();

//your code goes here

DDRB &= ~(1<<PB5) ;
DDRB |= (1<< PB3);
PORTB |= (1<<PB5) ;



while (1)
{
if ( PINB & (1<<PINB5) )
PortB |= (1<<PB3);
else
PortB &= ~(1<<PB3);

//or here


avrlab_poll(); //must be called at least every 40 ms
//muss mindestens alle 40 ms aufgerufen werden
}
}

Hubert.G
09.08.2009, 22:51
Und was funktioniert nicht, bekommst du eine Fehlermeldung oder funktioniert der Code nicht.

Aslan
09.08.2009, 23:01
Das Code wurde jetzt compaliert. Mein Fehler war das ich PortB anstatt PORTB geschrieben hatte.

Meine neue Code schaut jetzt sp aus




#include "avr/io.h"
#include "avrlab.h"



int main(void)
{
avrlab_init();

//your code goes here

PORTB &= ~(1<<PB3);
PORTB |= (1<<PB5) ;
DDRB &= ~(1<<PB5) ;
DDRB |= (1<< PB3);




while (1)
{
if (!( PINB & (1<<PINB5) ))
PORTB = PINB ^ (1<<PB3);
else
PORTB &= ~(1<<PB3);

//or here


avrlab_poll();

//must be called at least every 40 ms
//muss mindestens alle 40 ms aufgerufen werden
}
}


Jetzt ist es so, das wenn ich es resete das Led auch aus ist.
Aber wenn ich einmal die Taste betätigt habe geht die Led an, aber nicht mehr ganz aus. Wenn ich die Taste nochmal betätige leuchtet es heller.

Hubert.G
10.08.2009, 09:59
if (!( PINB & (1<<PINB5) ))
PORTB |= (1<<PB3);
else
PORTB &= ~(1<<PB3);

So sollte es wohl eher funktionieren.

Aslan
10.08.2009, 15:55
Hubert.G ich Danke dir.
Jeztz läft das Programm wie ich es haben wollte.