Forum: Mikrocontroller und Digitale Elektronik PIC18F2550 USB und Interrupts


von lsk (Gast)


Lesenswert?

Hallo Forum,

habe mir auf Basis des PIC18F2550 ein Testboard aufgebaut. Mein Programm 
läuft soweit, dass der PC es als virtuellen ComPort erkennt und ich 
Daten senden und empfangen kann. Nun brauche ich aber eine Zeitmessung, 
die ich gerne mit dem Timer0 realisieren möchte. Dieser soll bei jedem 
overflow(~1ms)in einer Interrupt-Routine eine Variable hochzählen, das 
funktioniert soweit (ohne USB) auch, aber sobald ich die Interrupts 
aktiviere(mit USB) erkennt der PC das USB-Device nicht mehr. Kann mir 
jemand sagen an was das liegt, bzw. wie ich das beheben kann?

lsk

von Geri (Gast)


Lesenswert?

Hallo

Zeige doch mal Deinen Code..

1.) Vielleicht dauert deine ISR zu lange und Deine ServiceUsb-Routine 
wird zu wenig of aufgerufen.

2.) Timerfrequenz ist zu hoch eingestellt (gleich wie oben)

3.) ISR fehlerfahft, z.B. INTCONbits.TMR0IF nicht gelöscht.

...

Beste Grüsse

Frank

von lsk (Gast)


Lesenswert?

Den Code kann ich im Moment leider nicht posten, da ich mit meinem 
Notebook hier nicht ins Netz darf.

Ist es vielleicht möglich die Schnittstelle während der Zeitmessung zu 
stoppen, ohne das die Verbindung getrennt wird, ich muss nämlich nur zu 
Beginn die Konfiguration senden und nach der Zeitmessung die Werte an 
den PC zurückschicken.

Gruß
lsk

von Geri (Gast)


Lesenswert?

Denke, das ist nicht notwendig. Ausserdem könnte es dann sein, dass 
Windows laufend eine neue Verbindung aubaut:)

Beste Grüsse

Geri

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
Noch kein Account? Hier anmelden.