ADC am Atmega16

Gast #285724
Lesenswert?
• ▲
▼
Hab da des Progi zum AD Wandeln und zum rauschicken auf die serielle.
USART.h und die seriell.c sind da jetzt nicht dabei aber die
funktionieren mit Sicherheit.
Irgendwie bekomm ich aber gar nichts auf die serielle (schaus mir übers
Hyperterminal an)
bin noch ein µC Nub würde mich aber freuen wenn mir jemand helfen
könnte.
Thx Yoschi
Angehängte Dateien:
Gast #285730
Lesenswert?
• ▲
▼
So hab das jetzt so gmacht wie ich es eigentlich gerne hät! also mit
High und Lowbyte. eigentlich eh recht schön beschrieben.
Nur wenn ich es jetzt übers Hyperterminal z.b erfassen möchte lässt
sich dei Com meistens nicht öffnen auser ich halte den reset gedrückt
bis ich sie offen habe. Dann gehts. aber auch dann erkenn ich nicht
unbedingt irgendeine unterschiede wenn ich die eingangsspannung ändere.
Auch mit der entsprechenden Erfassungssoftware die für dieses
Datenformat ausgelegt wäre krieg ich nicht undbedingt sinnvolle sachen
rein.
liegts hier an der µC software?
Danke im Vorraus
Angehängte Dateien:
Gast #285731
Lesenswert?
• ▲
▼
Versuchst du mit dem mall dein ADC zu testen:
http://www.mikrocontroller.net/forum/read-4-260506.html#new
Vielleicht kannst du dein Programm auch so schreiben:

uint8_t  Buffer[20];
uint8_t  iChannel = 0;
int16_t  ADCdata;

int16_t  read_adc(uint8_t input);

int main(void)
{


  InitRS232();

  adc_init();

  while (1)
  {

    iChannel++;

    if (iChannel>7) iChannel=0;// IChannel von 0 bis 7
          ^^
    ADC_data=read_adc(iChannel);
    itoa(ADC_data,Buffer,10);
    uart_puts(Buffer);
    uart_puts("\t"); // horizontal Tabulator
    iChannel++;
      if (iChannel>7)
    {
     iChannel=0;
     uart_puts("\n");// Zeilen Umbruch
     }
    delay();
  }
return 0;
}
Gast #285732
Lesenswert?
• ▲
▼
So jetzt hab i mein Programm auf single Ended umgeschrieben und zum
anfang nur für einen Kanal zum testen(laut GCC - Tutorial) aber
irgendwie kommt noch immer nix gscheides raus. Was mich vor allem
wundert ist das ich "auf den Reset knopf bleiben muss" bis ich die
com im Hyperterminal geöffnet habe. Sonst lässt sie sich gar nicht
öffnen.
Liegts vielleicht daran wie ich meine Daten umstelle:
(Brauch sie aber dringend so laut meinen Kommentaren.)
buffer = (ADCH<<8) | ADCL;

    //buffer aufbau:
    //0 0 0 0 0 0 D9 D8 D7 D6 D5 D4 D3 D2 D1 D0


    //Resultierendes Ergebniss für Lowbyte:

    //D3 D2 D1 D0 Ch2 Ch1 Ch0 0
        lowbyte=(buffer<<4);
        lowbyte &= 0xF0;
        lowbyte |= iChannel<<1;


    highbyte=(buffer>>2);
        highbyte&=3;
        highbyte|=(1<<0);
        highbyte|=(1<<1);

    //Resultierendes Ergebniss für highbyte:
    // D9 D8 D7 D6 D5 D4 1 1

Irgendwie versteh ich gar nichts mehr. Das kann doch nicht so schwer
sein einen ADC am Atmega zu machen.
mfg Yoschi

Antwort schreiben

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.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.