mit AVR Spannungen messen

Gast #59636
Lesenswert?

in der codesammlung hab ich nichts brauchbares gefunden und englisch
kann ich auch nicht so gut. es muss doch irgendwen geben, der das
schonmal in C und mit einem 90s gemacht hat. kommt, schreibt doch mal
was rein.

mfgraoul4
Gast #59638
Lesenswert?

hallo,
so hab mir jetzt mal das datenblatt angeschaut und dabei folgenden
(stümper) code erstellt.
vielleicht so(?):

#include <90s8535.h>
#asm
   .equ __lcd_port=0x1b
#endasm
#include <lcd.h>
#include <delay.h>

void main(void)
{
lcd_init(16);         //LCD initialisieren
lcd_clear();          //LCD-Speicher löschen
ADMUX=0b00000011;     //um PA3 als A/D Wandler-Port zu nutzen
ADCSR=0b10100000;     //um ADFR (free running mode) und ADEN
                      //(enable) zu setzen
while (1)
      {

      };
}

das ziel dieses (noch unvollständigen) programms ist es eigentlich die
spannung zu messen und sie dann auf dem LCD anzuzeigen. ich bin noch
ein ziemlicher anfänger und habe mir auch schon das buch "C für
Mikrocontroller" bestellt.

und dann gleich noch zwei fragen:


1. wie kann ich nur einzelne bits ändern, also nicht so: 0b11010110
sondern vielleicht geht's ja auch noch anders?!?!

2. muss ich im DDRA noch den PA3 als input eintragen, damit ich in ADCH
und ADCL das ergebnis lesen kann?
Gast #59641
Lesenswert?

Ich habe neulich die ADC's dazu benutzt 2 Infrarot Abstandssensoren zu
testen. Der Code macht nichts anderes als 2 ADC's zu starten und deren
Wert ohne jegliche formatierung auf einem LCD Display anzuzeigen, also
genau das was du haben möchtest. Der Code ist für CodevisionAVR, müsste
Dir weiterhelfen. Und Lass dich nicht am #include <mega16.h> stören,
wenn dus einfach in #include <90s8535.h> änderst müsste es schon
funzen. Wenn nicht, prüf die Registeradressen.
Angehängte Dateien:
Gast #59643
Lesenswert?

hallo markus k.,
ich hab zu deinem code zehntausend fragen. ich habe mir zwar schon das
buch "C für Mikrocontroller" gekauft, aber verstehe trotzdem so
einiges nicht.(im buch mein ich >>) z.b.:
-enum und struct befehl.

-viele beispielprogramme.

-wenn da jetzt "|=" steht, dann weiß ich garnicht wieso und für
welchen zweck. und genauso ist es auch bei "&=".

mfg raoul4
Gast #59644
Lesenswert?

Hallo Raul4...

Tip: Vokabeln lernen...

Aber tröste dich, ich blicke da auch nicht durch, befasse mich aber
derzeit auch nicht mit C, mache meine Sachen in Assembler. Dass "!="
der Operator für "Ungleich" ist raffe ich noch, beim Rest müsste ich
nachschlagen. Richtig gesehen braucht man zu jeder Programmiersprache
oder zu jedem Befehlssatz mit der/dem man arbeitet ein
Befehlsverzeichnis als Nachschlagewerk...

Viel Erfolg...
Bit- & Bytebruch... - ...HanneS...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren