Forum: Compiler & IDEs AVR mit LM75 und avrgcc


von Bjoern (Gast)


Lesenswert?

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

von Marcus M. (Gast)


Angehängte Dateien:

Lesenswert?

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

von Bjoern (Gast)


Lesenswert?

Danke schonmal ich denke ich bekomme es hin den Code umzuschreiben falls
nicht, melde ich mich nochmal...

von Marcus M. (Gast)


Lesenswert?

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

von Jörg Wunsch (Gast)


Lesenswert?

Die avr-libc Doku besitzt ein twidemo.c, das sollte die wesentlichen
Dinge für einen (nicht-interruptgesteuerten) Betrieb als TWI-Master
enthalten.

von Bjoern (Gast)


Lesenswert?

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 :-)

von Jörg Wunsch (Gast)


Lesenswert?

> 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.

von Björn (Gast)


Lesenswert?

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...

von Marcus M. (Gast)


Lesenswert?

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