www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik ADSC im ADCSR setzen


Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

habe bereits Themen im hiesigen Forum durchsucht und gegoogelt. Habe
einen atmega16 included und möchte ne Single A/D Conversation starten.

Dazu möchte ich das ADSC-Bit im ADCSR (ADC Status Register) setzen.
Laut Beispielen / anderen Threads wird das ADCSR wie ein I/O Port
behandelt. Doch die Port-Befehle funktionieren nicht. Beispiel:

SBR temp,ADSC
OUT ADCSR,temp

wird nach dem builden mit "ADCSR undefined symbol" oder so ähnlich
beantwortet. Das ADCSR lässt sich also offenbar unter dieser
Bezeichnung nicht finden (dabei heißt das Register im Simulator ja
genau so). Was läuft hier falsch?

Danke für die Mühe

Basti

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also hab mir das include-file angesehen und festgestellt, dass ADCSR als
$06 definiert ist.

SBI $06,6 ;funktioniert!!

Neulich wollte ich meinen Code auf mehrere Files verteilen und der
gleiche Code ging nicht mehr (ein Makro-Name war angeblich unzulässig,
der vorher einwandfrei lief. Immer wenn ich das Makro umbenannt habe
wollte der Name beim Makro-Aufruf natürlich auch entsprechend geändert
werden. Und wenn ich den Namen auch geändert habe kam wieder die
"unzulässige Syntax"-Fehlermeldung, egal bei welchem Namen)

irgendwie hab ich´s wohl mit den include-files... Kann mir jemand nen
Tipp geben?

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach muß ich für das ADCSR Register ne Port Direction einstellen?

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nee dann würd ja die direkte Andressierung auch nicht gehen. Per .EQU
können doch einem Wert auch mehrere Namen zugewiesen werden, oder?

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey Jungs, dat kann doch echt nicht sein. Ich werde doch wohl kaum der
erste sein mit so ner Sache.

Autor: Daniel (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

also Recherche im Datenblatt (heute morgen auf www.atmel.com) ergab
folgendes :
 - Bei der Beschreibung des AD-Wandlers (bzw. seiner Register) steht
das  ADControl und Status Register als ADCSRA. Das hieße, oso müsste es
auch im Programmcode heißen (siehe Seite 217 im Datasheet Complete)
 - Im  Register Summary (Seite 313) steht es ebenfalls unter diesem
Namen, das spricht auf dafür, dass es so heißt.

Zu der Frage nach der Direction - nein, dies sind alles Register und
keine Ports. Alle Ports sind durch Register ansprechbar, nicht anders
herum. Damit etwas auf einem Port herauskommt, muss man zum einen Daten
in das Ausgangsregister schreiben (z.B. PORTB) und außerdem noch die
Funktion des Ports im Datenrichtungsregister (DDRB in diesem Fall) als
Ausgang konfigurieren. Dies funktioniert natürlich pinweise.

MfG, Daniel

Autor: Alisa 1387 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke,
doch jetzt läuft´s bereits... Ne Untersuchung des Dateblatts ergab,
dass in der anderen Doku das "A" fehlte. Ich Blindfisch hab´s beim
Einsehen des Include-Files übersehen ;)

THX

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.