www.mikrocontroller.net

Forum: Compiler & IDEs AVR mit LM75 und avrgcc


Autor: Bjoern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Marcus M. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht 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

Autor: Bjoern (Gast)
Datum:

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

Autor: Marcus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Jörg Wunsch (Gast)
Datum:

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

Autor: Bjoern (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 :-)

Autor: Jörg Wunsch (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Björn (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Marcus M. (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.