Forum: Mikrocontroller und Digitale Elektronik AD Wandlung interrupt


von Hans (Gast)


Lesenswert?

Ich habe eine generelle Frage.
ich habe zb eine c zeile die lautet:

void isr_AD(void) interrupt 0x28
{
cc23 = (ADDAT & 0x03C0) << 6;
}

wie bestimme ich den wert = 0x03C0.
Nach welche Kriterien bestimme ich diesn Wert.

Gruß

Hans

von Spess53 (Gast)


Lesenswert?

Hi

>wie bestimme ich den wert = 0x03C0.
>Nach welche Kriterien bestimme ich diesn Wert.

$3C0 = 0b1111000000

Das bedeutet, das nur die oberen 4 Bit des Ergebnisses verwendet werden. 
Bei mehr Bits:

0b1111100000 = $3E0
0b1111110000 = $3F0
0b1111111000 = $3F8
0b1111111100 = $3FC
0b1111111110 = $3FE

MfG Spess

von Hans (Gast)


Lesenswert?

also was die zahl in hex und bin ist des ist mir klar.
Mir stellt sich die Frage warum ich 0x03C0 verwende
und dann noch nach links 6 mal verschiebe.
Das ist mein problem. Woher weis ich dass ich die 0x03C0
verwenden muss.

MfG

Hans

von g457 (Gast)


Lesenswert?

> Woher weis ich dass ich die 0x03C0 verwenden muss.

Müssen ist relativ und ohne Speck kann man nur raten. Ich vermute mal 
dass der (unbenannte) ADC eine Auflösung von 10 Bit hat und der 
Programmierer obigen Kunstwerks eine Auflösung von 4Bit will - im 
viertniedrigsten Nibbel der (undeklarierten) Zielvariable.

HTH

von Spess53 (Gast)


Lesenswert?

Hi

>Mir stellt sich die Frage warum ich 0x03C0 verwende

Die Frage solltest du beantworten können (wenn es dein Code ist).

>und dann noch nach links 6 mal verschiebe.
>Das ist mein problem. Woher weis ich dass ich die 0x03C0
>verwenden muss.

Das ADC-Ergebnis deines unbekannten Controllers ist offensichtlich 
12-Bittig.

Mit ADC & $3C0 bleiben nur die oberen 4 Bit übrig.

<< 6 schiebt die 4 Bit um 6 Stellen nach links. Damit wären sie die 
oberen 4 Stellen eines Bytes.

Wie ist cc23 deklariert?

MfG Spess

von Spess53 (Gast)


Lesenswert?

Hi

>Das ADC-Ergebnis deines unbekannten Controllers ist offensichtlich
>12-Bittig.

Natürlich 10 Bittig.

MfG Spess

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.