Hallo zusammen. Ich bin dabei ein LC-Messgerät zu bauen, und vielleicht kann mir jemand von euch ein paar Tipps geben, wie man dieses Programm in die Praxis umsetzt. Wenn ich die Frequenzen einzeln messe, kann ich dann mit dem Taschenrechner die richtige Kapazität ausrechnen. Aber messe ich diese mit "LC-Messgerät"-Programm, sind die Frequenzen um 65536 größer, und als Kapazität kommt immer der Wert 16776260, was man auch als 0-956 ausdrücken kann. Aber in der Simulation kommt keine null bei der Division raus. Wenn ich mit diesem Teil des Programms(im Hintergrund) die Frequenzen messe, kommen erst nach dem ich zwei Mal die Eins sende, die richtige Frequenzen raus. Aber der Wert 16776260 bleibt. ; sei ;Lösche Register TCNT1 -> !!! Zuerst TCNT1H dann TCNT1L ;anfang: clr tcnt1h_l ; out TCNT1H, temp0 ; out TCNT1L, temp0 ;Warteschleife ;Sollschleifenanzahl ;=(Wartezeit*Quarzfrequenz)/4 ;=zahl_1*zahl_2*zahl_3 -> siehe Faktor3.bas ; clr zahl_3 ;loop1: clr zahl_2 ;loop2: clr zahl_1 ;loop3: inc zahl_1 ; cpi zahl_1, 250 ; brne loop3 ; inc zahl_2 ; cpi zahl_2, 185 ; brne loop2 ; inc zahl_3 ; cpi zahl_3, 75 ; brne loop1 ;Der Wert des TCNT1-Register wird ausgelesen ; in einer_low, TCNT1L ; in einer_high, TCNT1H ; mov einer_high_low, tcnt1h_l ; mov a1, einer_low ; mov a2, einer_high ; mov a3, einer_high_low Ich Danke euch für jede Kritik, Tipps und Hilfe.
Das ist mir schon klar, aber wieso ist die Frequenz beim ersten Mal um 65536 größer als sie sein soll?
2 exp 16 ist zufällig 65536, irgendwo nen variablen überlauf oder so? kann kein asm
OK, wenn wir also die Frequenz für kurze Zeit außer acht lassen, d.h. ich sende zwei Mal die Eins und dann die Zwei, kann ich aber nicht nachvollziehen wieso für Cx der Wert 16776260 angezeigt wird. Ich habe die Berechnung Schritt für Schritt nachvollzogen und kontrolliert. Für Cx=1nF kommt 0x777 -> 955pF raus. Es ist bestimmt ein kleiner Fehler aber ich als Anfänger kenne wahrscheinlich diesen Fehler noch nicht und kann ihn deshalb nicht erkennen. Hoffentlich findet ihn einer von euch.
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.