mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik mit AVR Spannungen messen


Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo,
ich hab mal gehört, dass der 90s4433 spannungen messen kann. ich hab
jetzt einen 90s8535, und der wird das ja wohl auch können, oder? und
wenn er's kann, wie geht das dann? irgendwie mit den AD wandlern?
bitte um hilfe!


mfg raoul4

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wie sonst? Genau dafür sind die Analogeingänge da.
Wie es genau gemacht, steht im Datenblatt, und in der Codesammlung sind
sicher auch ein paar Beispiele.

Autor: raoul4 (Gast)
Datum:

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

Autor: ape (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
komm beschäftige dich doch mal selber damit :P
sorry, aber abschreiben kann jeder. Wenn du kein englisch kannst, dann
lern es :) wirste über kurz oder lang nich dran vorbei kommen...

Autor: raoul4 (Gast)
Datum:

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

Autor: Hannes Lux (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo...

Sind nicht nach dem Reset erstmal alle Ports Inputs???

...HanneS...

Autor: Frank Linde (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Es ist guter Programmierstil, alle Ports so zu initialisieren, wie man
sie benötigt und sich nicht auf irgendwelche Default-Werte zu
verlassen.

Gruß, Frank

Autor: Markus Kempf (Gast)
Datum:
Angehängte Dateien:

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

Autor: raoul4 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke für eure unterstützungen!!

mfg raoul4

Autor: raoul4 (Gast)
Datum:

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

Autor: Hannes Lux (Gast)
Datum:

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

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.