www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADC Initialisierung bei Mega8


Autor: Hubert Papst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo zusammen,
ich habe schon öfters hier im Forum geblättert. Da ich jetzt vor einem 
konkreten Problem stehe, habe ich mich eingeklinkt. Vielleicht kann mir 
jemand bei meinem trivialen Problem (für Profis in dieser Materie) 
helfen.
Habe ein Board mit Mega8, der mit 16MHz getaktet wird. Soweit 
funktioniert auch alles. Wollte jetzt den ADC mal testen und probieren, 
bekomme ihn aber nicht zum laufen. Auch nicht mit der Simulation beim 
Studio.
Kann Studio den ADC nicht simulieren (Auf Eingang einen Analogwert 
geben) oder was mache ich falsch? Ich beschreibe die Register ADCSR mit 
0hE7 und das Reg. ADMUX mit 0h00.
Bitte um Eure Hilfe.
mfg
Hubert

Autor: mikki merten (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Im AVR Studio wird eine Simulation des ADC nicht unterstützt.

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nur zur Sicherheit: hast Du AVDD, AGND und AREF richtig angeschlossen?

Autor: Hubert Papst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
denke schon:
AVDD direkt an +5V Versorgung, AGND auch direkt an GND und AREF wieder 
direkt an +5V.
Muss ich ev. beim schreiben in die beiden Reg. ADCSR und ADMUX eine 
best. Reihenfolge beachten?

Bin für jede Hilfe dankbar.

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Womit programmierst Du eigentlich? ASM oder C? Und verwendest Du einen 
Mega8 im DIP oder TQFP Gehäuse? Beim DIP fehlen ja zwei Eingänge. Nicht, 
das du versuchst die zu verwenden ;)

Autor: Hubert Papst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
im TQFP Gehäuse. Es handelt sich um das Mega8 Mini Modul RS232 von 
http://www.katalog.embedit.de/index.html?controller.htm

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hm, das Modul kenn ich natürlich (habs ja entwickelt :).
Hab grad zusammen mit dem Prototypen des dazu passenden Application 
Boards einen Test gemacht. Alles funktioniert wie erwartet. Leider kann 
ich Dir bei der Initialisierung in ASM oder C (noch) nicht helfen, da 
ich derzeit in Pascal programmiere.
Das sieht dann in etwa so aus (das Display wird über I2C angesteuert):

program LCDTest;

{ $BOOTRST $00C00}         {Reset Jump to $00C00}
{$NOSHADOW}
{ $W+ Warnings}            {Warnings off}

Device = mega8, VCC=5;

Import SysTick, ADCPort, LCDmultiPort, TWImaster;

From System Import ;

Define
        ProcClock    = 16000000;       {Hertz}
        SysTick      = 10;             {msec}
        StackSize    = $0064, iData;
        FrameSize    = $0064, iData;
        ADCchans     = 2, iData;
        ADCpresc     = 128;
        TWIpresc     = TWI_BR400;
        LCDmultiPort = I2C_TWI;
        LCDrows_M    = 4;             {rows}
        LCDcolumns_M = 16;            {columns per line}
        LCDtype_M    = 44780;

Implementation

{$IDATA}

{--------------------------------------------------------------}
{ Type Declarations }

type


{--------------------------------------------------------------}
{ Const Declarations }


{--------------------------------------------------------------}
{ Var Declarations }
{$IDATA}
var
   temp      : word;
   LCD_num   : TLCD_num;
   st1       : string[10];


{--------------------------------------------------------------}
{ functions }



{--------------------------------------------------------------}
{ Main Program }
{$IDATA}

begin
  LCDsetup_M(LCD_m2);
  LCDcursor_M(LCD_m2, true, false);
  EnableInts;
  loop
      temp:=GetADC(1);
      st1:=IntToStr(temp);
      LCDClr_M(LCD_M2);
      write(LCDOut_M, st1);
      mDelay(10);
  endloop;
end LCDTest.

Autor: Hubert Papst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja hallo - so trifft man sich wieder.

Programmiere in Assembler mit AVR-Studio. Mit Pascal hab ich eigentlich 
gar nix am Hut. Aber ist egal.
Werde heut abend noch mehrere Versuche machen und vielleicht bekommt ich 
es in den Griff.
Sonst hoffe ich, darf ich noch weiter lästig sein.

Autor: Markus Burrer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Klar. Das Support Forum befindet sich eigentlich auf www.embedit.de, 
aber ich bin ja nicht so ;)
Wenns aber um Hardwaresachen oder Pascal Programmierung geht sollte man 
aber schon dort posten

Autor: BernhardT (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hubert schau dir das Datenblatt mal genauer an. Da hat sich was mit den 
Registern geändert also nicht mehr ADCSR sondern ADCSRA... 0hE7 müsste 
aber gehen. Aber nagel mich nicht drauf fest-'hab eben keinen Zugriff 
auf meine Codes.

Gruß Bernhard

Autor: Hubert Papst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, danke das ist mir schon aufgefallen und hab dies auch kontrolliert.
ADCSRA ist im Datenblatt angegeben und ist auf der I/OAdr:0h06. Im 
Studio wird der Name ADCSR erwartet (M8def.inc) und verweist auch auf 
die I/O Adr: 0h06.
Also das stimmt schon zusammen.

Autor: Hubert Papst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hab's jetzt auch geschafft. War ein dummer Fehler beim Auslesen der 
AD-Werte.
Vielen Dank nochmal an die angebotene Hilfe.

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.