Du musst PORTB die Pull ups noch setzen.
Eventuell noch eine Endlosschleife, einbauen...
Grüße
Werbung
Also ich hab folgendes Programm:
Dann müsste doch eine Lampe an Port B leuchten. Macht sie aber nicht.Code:#include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> int main(void) { _delay_ms(10); DDRB=0x01; return(0); }
Du musst PORTB die Pull ups noch setzen.
Eventuell noch eine Endlosschleife, einbauen...
Grüße
Wie ist den deine Lampe angesteuert ?
Wenn zum leuchten eine 1 am Ausgang gebraucht wird solltest Du noch:
PORTB=0x01;
in deinen Code einfügen.
Also es ist so, wenn ich im obrigen Code das "_delay_ms(10);" weglasse leuchtet eine Lampe auf. Ich glaub der bleibt da bei delay hängen.
Nächstes Problem: Hab es mit einer for-Schleife probiert aber die überspringt er irgendwie.
z.B
Es leuchtet keine Lampe auf. Nur mit dem Schleifeninhalt schon.Code:#include <avr/io.h> #define F_CPU 1000000 #include <util/delay.h> int main(void) { int i; for(i=1;i>0;i++) { PORTB=0x00; DDRB=0x01; } return(0); }
Hallo,
ist ja auch klar...
es muss heißen:
for(i=1;i<0;i++){
aber gleich besser ist:
while(1){
Grüße
Danke für die Hilfe.
OK, Schleife funktioniert, aber delay geht immer noch net. Hab keine Ahnung was ich noch machen kann.
Mfg Jokill
Beachte:Zitat von s.o.
The maximal possible delay is 262.14 ms / F_CPU in MHz.
Also bei 1MHz: max 262,14ms. 500ms ist zu hoch.
Habs jetzt mal mit Schleife probiert und klappt immer noch nicht (es tritt keine Verzögerung auf):
Ich flipp langsam aus. Kann mir vielleicht nicht einer einen funktionierenden code posten?Code:#include <avr/io.h> #define F_CPU 1000000 int main() { int i; for (i=0; i<50; i++) { (void) (int * volatile) &i; } DDRB=0x01; return 0; }![]()
![]()
mfg Jokill
wundert mich nicht. Er hängt sich oben ja schon in der Schleife auf, dann kann er auch nix ausgeben...
Lesezeichen