www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik tiny45 ADC3 immer Null


Autor: halbelf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ATtiny45
8 MHz int. osc.
Vcc = 2,8 V

Uref = Vcc
U_ADC3 = 2,2 V

Ich komm nicht drauf - was läuft hier falsch?
void temp_init(void)
{
  DIDR0 = (1<<ADC3D);          // disable digital
  ADCSRA = (1<<ADEN) 
      | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
  ADMUX = 3;            // select pin, Vcc as reference
  ADCSRA |= (ADSC);          // start conversion
  while (ADCSRA & (1<<ADSC) );    // wait until completed
  int16_t discard = ADC;        // 10 bit value
}

int16_t temp_get(void) 
{
  ADCSRA |= (ADSC);          // start conversion
  while (ADCSRA & (1<<ADSC) );    // wait until completed
  return (ADC);            // 10 bit value
}

.......

while(1)

  {

    _delay_ms( 500 );

    

    tmp = temp_get();

    itoa(tmp, buffer, 10);

    LCD_WriteString(8, 3, buffer);
...............

tmp auf einen Wert gesetzt bewirkt erwartungsgemäße Ausgabe.

Autor: halbelf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
int16_t tmp;

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
halbelf schrieb:
>  ADCSRA |= (ADSC);          // start conversion

Autor: halbelf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man beachte das Fehlen der Schiebeaktion:
  ADCSRA |= (ADSC);          // start conversion

Autor: halbelf (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ah ja, danke! :-)

Autor: Tim T. (tim_taylor)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sowohl in temp_init() als auch in temp_get().

BTW. Warum rufst du in temp_init() nicht einfach temp_get() auf?

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.