Hallo Forum, ich habe folgendes Problem, ich fang gerade an mit C zu Programmieren (ja auf dem AVR). Vorher habe ich in Basic Programmiert was mir aber irgendwie zu blöd wurde da man nur sehr wenig über die internen Abläufe im µC erfährt. Nun gut ich würde gerne einen Lm75 Temperatur Sensor mit einem AT90S8535 auslesen. Das ganze soll in C mit avrgcc programmiert werden. Hat das schonmal jemand gemacht? Ich sehe mich ehrlich gesagt nicht in der lage das selbst zu Programmieren. Wie wende ich eigentlich diese I2C header Dateien an? Kann ich die benutzen um den LM75 auszulesen? Der ist ja auch I2C. Vielen Dank schonmal für eure hilfe... Mfg Bjoern
Hallo Björn, leider habe ich das nicht auf einem 90S8535 gemacht, sondern auf einem Tiny26. Anbei liegt der Code. Schau in Dir einfach mal an, vielleicht hilfts Dir. BTW: Ist eine Software I2C implementation. Gruß Marcus
Danke schonmal ich denke ich bekomme es hin den Code umzuschreiben falls nicht, melde ich mich nochmal...
Hallo Björn, die Hardware I2C Ansteuerung ist wesendlich einfacher, ich habe nur leider im Moment keinen Code parat. Sorry! Du mußt nur die I2C-Interrupts auswerten und in das I2C-Datenregister schreiben bzw. aus ihm lesen, soweit ich weiß, besitzt der Baustein eins. Gruß Marcus
Die avr-libc Doku besitzt ein twidemo.c, das sollte die wesentlichen Dinge für einen (nicht-interruptgesteuerten) Betrieb als TWI-Master enthalten.
Ja die twidemo.c hab ich mir auch schon mal angeguckt, bin aber nicht so ganz schlau draus geworden. Wie gesagt ich fange erst an in C zu Programmieren. Ja gut ist vielleicht nicht das schlaueste auf einem Mikrocontroller eine Programmiersprache zu lernen aber ich denke mit der Zeit werden meine ergebnisse besser. Ich werde mich gleich mal ans Programmieren begeben, wenn der Code nicht läuft werd ich ihn hier mal Posten dann könnt ihr mir vielleicht bessere Ratschläge geben. Aber bitte nicht selbst drauf los verbessern weil dann versteh ich wieder nicht was da an meinem Code eigentlich falsch war :-)
> Ja gut ist vielleicht nicht das schlaueste auf einem Mikrocontroller > eine Programmiersprache zu lernen [...] In der Tat. Es debuggt sich relativ schlecht auf einem solchen (selbst mit Dingen wie JTAG-ICE noch, ohne derartige Vorrichtungen noch schlechter). Aus dem twidemo wirst Du sicher nur schlau, wenn Du Dir die Grundlagen von I²C mal angesehen hast sowie die entsprechenden Erklärungen im Datenblatt.
Hallo Leute, ich könnte nochmal einen kleinen Denkanstoß gebrauchen, an und für sich stehen die Routinen von der Logik her und vom Code eigentlich auch, aber welche delays muss ich verwenden wenn ich z.B. Sck Pulsen will? Ich habe mir das Datasheet zum LM75 angeschaut bin daraus aber nicht wirklich schlau geworden. Ich habe dann die Programmroutinen, weil es auf dem AVR nicht wirklich geklappt hat, für eine C-Control in Basic übersetzt naja mit der C-Control geht es. Ich glaube es liegt einfach an der Geschwindigkeit des AVR...
Hallo Björn, wenn der Prozessor eine integrierte TWI Schnittstelle hat, dann stell ihn auf 100kHz und laß die Schnittstelle die ganze arbeit selbst machen. Mache das gerade selber mit einem Mega16. Ist wensendlich weniger Arbeit als alles andere!! Gruß Marcus
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.