Du musst PORTB die Pull ups noch setzen.
Eventuell noch eine Endlosschleife, einbauen...
Grüße
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
ich nehme mal an, dass du das ganze nicht so 100 Prozent genau brauchst.
Mach eine Schleife die hochzählt, innenrein NOPs (no operation). Schau am besten im Wiki, Rubrik inline assembler, da ist das beschrieben.
Achja: 10ms sind ja auch wenig, nimm mal 500ms dass du was siehst
Grüße
s.o.
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