Forum: Mikrocontroller und Digitale Elektronik AT90CAN128 Timer/Counter - Bits zählen


von Nadia (Gast)


Lesenswert?

Hallo alle zusammen,

ich habe ein Problem und habe dazu keine passenden Threads im Forum 
gefunden, die mir weiter helfen.

Ich möchte mit Hilfe von Timer/Counter die pro Sekunde empfangenen Bits 
(über SPI, CAN) zählen.
Die Timereinstellungen, um immer eine Sekunde zu zählen, sind kein 
Problem, das funktioniert.
Leider fehlt mir als Neuling in dem Bereich aber gerade das nötige 
Knowhow, um die richtigen Einstellungen (welche Register, Timer, 
Interrupts, ...) zu setzen , die ich benötige, um jedes einzelne 
ankommende Bit zu zählen. Erst wollte ich jedes Wechseln von 0 auf 1 und 
anders herum nutzen, aber da werden ja sicherlich mehrfach 
hintereinander gesendete gleichwertige Bits ignoriert...

Ich benutze den AT90CAN128 mit einem 16 MHz Quarz.

Kann mir vielleicht jemand weiter helfen???

Danke schon einmal...

von Rahul D. (rahul)


Lesenswert?

>um jedes einzelne ankommende Bit zu zählen.

Das sind beides Byte- bzw. Frame-orientierte Datenformate.
Du kannst höchstens deinen Zähler jeweils um 8 bzw. Canframe-Längen-Bits 
erhöhen...

von Nadia (Gast)


Lesenswert?

Ich befürchte sowas... Hab überlegt, ob man es allgemein halten kann, um 
es für beides zu benutzen, SPI und CAN.

Welche Timer/Counter Einstellungen empfiehlst Du?

von Rahul D. (rahul)


Lesenswert?

>Welche Timer/Counter Einstellungen empfiehlst Du?

Keinen. Du zählst einfach in der ISR zum CAN-Receive und SPI-Receive 
eine Variable hoch.
Sobald deine Sekunde um ist, gibst du diese Zahlen aus (oder 
verarbeitest sie wie du magst) und setzt sie dann zurück.

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.