Hi Leute, ich hoffe es kann mir einer von euch helfen. Ich verzweifle an dem C-Code. Ich programmiere mit microC von mikroelektronika. Ich will eine Impulsdauer messen und wollte dazu das Capture Modul verwenden, aber irgendwie funktiert es nicht und ich komme nicht dahinter. folgend der Code: ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ void main() { unsigned int Impuls1 = 0; unsigned int Impuls2 = 0; TRISC.B1 = 1; // PORTC_Bit1 auf Eingang CCP2CON = 0x04; CCPR2L = 0; CCPR2H = 0; PIE2.B0 = 1; PIR2.B0 = 0; T1CON = 0x01; while (1) { if(PIR2.B0 == 1) // Interrupt bei { Impuls1 = CCPR2L; Impuls2 = CCPR2H; PIR2.B2 = 0; } } } +++++++++++++++++++++++++++++++++++++ Ich hoffe wirklich, dass sich jemand den Code mal kurz anschauen kann. Vielen Dank im voraus...
Bin mir nicht so ganz sicher aber du benutzt ja den Timer 1 so wie es aussieht... Ist der auch richtig konfiguriert? Bzw. wo ist der ganze andere Kram der Initialisierung??
der andere Kram wird von microC compiler organisieret. Den Timer muss ich jedoch selbst einstellen. So wie ich es im data sheet des pif18f45k22 raus lesen konnte, ist der in der bereits in der Grundstellung schon richtig konfiguriert und mann müsste den nur noch starten... aber ich dachte auch schon ddass es daran liegen müsste...
Also da ich den microC nciht verwende kann ich dir da nciht viel zu sagen. Aber ich würde mal nachschaun ob die mehrfach Belegung der PIN stimmt. Da gibts so spezielle Register die die verschiedenen Funktionen eines Pins verwalten und die Priorität festlege. Vll mach das der Micro C nicht richtig.,.,.
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.