www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega 8535 ad wandler


Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hallo

habe nen atmega8535
und 16 led s an den porten c und d
angeschlossen

eine variable spannung über ein poti

ein ausgang +5volt bzw gnd
schleifer zum atmel AD eingäng

lasse nun den code den ad auslesen
und je nach wert
auf die ports verteilt ausgeben

wie ein spannungsmessgerät..

nun hab ich nur folgendes problem
mit dem poti klappt das ja wunderbar
aber sobalkd 0 volt am ad anliegen
leuchten alle leds und 5 volt keine

also genau verkehrt herum wie ich es eigentlich wollte
was mach ich da ?

anbei n code schnipsel !

#include <mega8535.h>
#include <stdio.h>
#define ADC_VREF_TYPE 0x40

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}


 void Ausgabe(unsigned int Wert)
{
  char c=0;
  char d=0;

  if (Wert>=128) d=1;
  if (Wert>=142) d=d+2;
  if (Wert>=163) d=d+4;
  if (Wert>=178) d=d+8;
  if (Wert>=204) d=d+16;
  if (Wert>=229) d=d+32;
  if (Wert>=256) d=d+64;
  if (Wert>=286) d=d+128;

  if (Wert>=321) c=c+1;
  if (Wert>=363) c=c+2;
  if (Wert>=403) c=c+4;
  if (Wert>=455) c=c+8;
  if (Wert>=511) c=c+16;
  if (Wert>=572) c=c+32;
  if (Wert>=644) c=c+64;
  if (Wert>=721) c=c+128;

  PORTC=c;
  PORTD=d;
}

Autor: Sebastian__ (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ne LED leuchtet wenn du die mit Logic "0" ansteuertst.
Wenn deine Schaltung so Aussieht:
5V--> Widerstand --> LED --> PortPin am µC

Du musst also den Port auf 0xFF setzten und subtrahieren, oder dein
Outputbyte mit invertieren mit exklusiv-oder mit 0xff.

MfG
Sebastian

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kommt drauf an, wie du die Leds angeschlossen hast - meist schliesst man
die vom Port gegen +5V an, dementsprechend leuchten sie, wenn der Port
0 ist.

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
nun hat mir jemand in nem anderen forum
das geraten

d= 255
d= 255
if (Wert>=128) d=d-1;
if (Wert>=142) d=d-2;
if (Wert>=163) d=d-4;
if (Wert>=178) d=d-8;
if (Wert>=204) d=d-16;
if (Wert>=229) d=d-32;
if (Wert>=256) d=d-64;
if (Wert>=286) d=d-128;

if (Wert>=321) c=c-1;
if (Wert>=363) c=c-2;
if (Wert>=403) c=c-4;
if (Wert>=455) c=c-8;
if (Wert>=511) c=c-16;
if (Wert>=572) c=c-32;
if (Wert>=644) c=c-64;
if (Wert>=721) c=c-128;

PORTC=c;
PORTD=d;

nun funktioniert es ...

Autor: matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
danke nochmal ! für eure mühe
gruß matthias

Autor: predator747 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi kannst du mir dein Programm mal schicken???
Ich hätte da eine ähnliche anwendung

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.