ADSC im ADCSR setzen

Gast #172467
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
Gast #172468
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?
Gast #172472
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
Gast #172473
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

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren