mikrocontroller.net

Forum: Compiler & IDEs ADC am Atmega16


Autor: Yoschi (Gast)
Datum:
Angehängte Dateien:

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

Autor: Rainer Spitzhirn (rainersp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Meine Vermutung als atmel-noob: Initialisierung der seriellen
Schnittstelle (UART)?

Autor: Yoschi (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
na eben des muss passen. als das is mei c file wo i initialisiern tu.
muss gehen! weil wenn i an char oder an string rausschreib gehts.

Autor: Rainer Spitzhirn (rainersp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn Deine Methode InitRS232 nicht irgendwo implizit aufgerufen wird,
dann ist es toter Code. Du musst das Ding schon verwenden ,-)

Autor: Yoschi (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PEINLICH PEINLICH! Danke für die Hilfe.

Autor: Rainer Spitzhirn (rainersp)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bitte.

Autor: Yoschi (Gast)
Datum:
Angehängte Dateien:

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

Autor: Branko Golubovic (Gast)
Datum:

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

Autor: Yoschi (Gast)
Datum:

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

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.