Hi! Ich bräuchte da mal etwas unterstützung. Ich soll mit einem 80c51 eine Art Frequenzgenerator realisieren und mir fehlt etwas der Startpunkt wo ich anfangen soll. Am P3_2 soll ein Rechtecksignal gemessen werden und die Periodendauer in ys am Port 0 (lower Byte) und am Port1 (higher byte) ausgeben. Also zB. bei 1356 ys -> 1356d = 54Ch Port0= 4Ch Port=1 05h Kann mir jemand sagen wie ich da am besten Anfange?! Oszifrequenz ist 12Mhz und das ganze in Ansi-C Vielen Dank im Vorraus für eure Tipps! Ciao Johannes
Hallo, vielleicht solltest Du Dir erst über den Unterschied zwischen einem Frequenzgenerator und einer Periodendauermessung klarwerden... ;) Gruß aus Berlin Michael
Du hast recht. Ich sollte natürlich die Periodendauer ausgeben und keinen Frequenzgenerator basteln.
Hallo, wenn das Ding nichts weiter machen soll: In einer Schleife den Pinzustand abfragen, wenn der von L auf H wechselt einen passenden Timer starten. Weiter abfragen, bis wieder ein L/H-Wechsel erkannt wird, dann den Timer auslesen und die Zeit ausrechnen und ausgeben und dann eben wieder von vorn... Wenn es vornehm werden soll: Flanken-Interrupt programmieren usw. Gruß aus Berlin Michael
Könnte das klappen?
Void Init ExtInt 0(void){
TCON=TCON|0x01;
IE=IE|0x81;
}
Void Iinit Timer0(void){
THO =0;
TLO= 0;
TMOD=TMOD|0x01;
TMOD=TMOD&0xF1;
}
Void ISR EIO(void) interrupt0{
If(TRO==1){TRO=0;
P1=TLO;
P2=THO;
TLO=0;
THO=0;
TRO=1;
}
else{TRO=1;}
}
Void main(void){
Init extint 0();
Init Timer0() ;
While(1) ;
}
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.