Forum: Mikrocontroller und Digitale Elektronik I2C und Interrupt frage


von Tobias N. (silberkristall)


Lesenswert?

Hallo,

wie kann ich bei i2c die widerstände berechnen? also ich muss eine 
"brücke" bauen. und zwar muss ich vom pc per rs232 einen code senden. 
dieser soll dann vom controller über i2c weiter gegeben werden. der code 
ist ziemlich groß und muss halt byte für byte übertragen werden. am i2c 
ende hängt ein display was den code dann empfängt und in seinen flash 
schreibt.

wie berechne ich die widerstände für die i2c verbindung am besten?

dann noch zum interrupt. am externen pin hängt eine schalten die bis zu 
10000 impulse pro minute an den interrupt pin schaltet. also ein 
einfacher npn transistor mit einem pulldown an der basis und einem 
pullup am interrupt pin. bei jedem high schaltet der transistor. da das 
bis zu 10000 mal in der minute seien kann wird das wohl den code sehr in 
seiner performance beeinträchtigen.

hat da jemand eine bessere idee?

danke euch schonmal.

von Coder (Gast)


Lesenswert?

Was machst du mit den Pulsen? Reicht es vielleicht die Pulse von einem 
timercounter zählen zu lassen? Bezüglich i2c gibt im Netz die Doku und 
Empfehlungen herunterzuladen.

von Tobias N. (silberkristall)


Lesenswert?

Coder schrieb:
> Was machst du mit den Pulsen? Reicht es vielleicht die Pulse von
> einem
> timercounter zählen zu lassen?

Ja ich muss die Zählen, am besten im sekundentakt und das dann 
hochrechnen auf rpm, also damit werden drehzahlen gezählt.

von holger (Gast)


Lesenswert?

>wie berechne ich die widerstände für die i2c verbindung am besten?

Eine typische silberkristall Frage;) Oh man ey.

von Coder (Gast)


Lesenswert?

Also Pulse mit Timer/Counter zaehlen lassen und periodisch in fixen 
intervallen lesen. Da brauchst du dir über die Anzahl der Interrupts 
keine Gedanken, wenn Du 10 oder 20 mal pro Sekunde den Counter 
auswertest. Oder läuft es bei Dir auf ein Quadraturencoder aus?

von Tobias N. (silberkristall)


Lesenswert?

nunja, halt so:

timer fragt jede sek $drehzahl ab und schreibe in $drehrech

setze $drehzahl auf 0

rechne $drehrech mal 60

zeige drehrech auf display an ($drehrech Upm)

von Coder (Gast)


Lesenswert?

Dann wünsche happy hacking!

von Tobias N. (silberkristall)


Lesenswert?

Coder schrieb:
> Dann wünsche happy hacking!

wieso?

von Peter D. (peda)


Lesenswert?

Tobias N. schrieb:
> da das
> bis zu 10000 mal in der minute seien kann wird das wohl den code sehr in
> seiner performance beeinträchtigen.

Also mikrige 167Hz, da gähnt Dein MC nur so vor langer Weile.

von Peter D. (peda)


Lesenswert?

Tobias N. schrieb:
> wie berechne ich die widerstände für die i2c verbindung am besten?

Schau ins Datenblatt. Üblich sind max 3mA auf dem I2C, z.B. 1,8k.

von Eifriger Leser (Gast)


Lesenswert?

Gehört das nicht eher in den Baubericht Bordcomputer?

von Coder (Gast)


Lesenswert?

Lösungsansatze bzw. Kommentare wurden Dir präsentiert. Du kannst 
loslegen ;-)

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.