Das Elektor-Forum schließt seine Pforten (siehe auch http://www.elektormagazine.de/forum). Ab Freitag, den 01. März, ist es nicht mehr möglich, sich im Forum einzuloggen. Alle Inhalte des Forums bleiben jedoch bis Ende März noch sichtbar. Am 01. April wird das Forum schließlich komplett geschlossen.

ADC mit Analog Comparator ATTiny2313

ATMega-Controller in BASIC programmieren

Postby mhaefner » Tue Jan 06, 2009 12:00 am

Hallo Freunde,

hat jemand eine für Bascom angepasste und funktioniernede Routine fertig, entsprechend der für Assemler geschriebenen Routine AVR AppNotes, AVR401.

Ich möchte mit einem ATTiny2313 eine Spannung von 0-2.5V messen über den analog Comparator und dann auf LCD und auf ein xxx.txt File auf einer SD-Karte 0 - 250 ausgeben.

Gruß Manfred
mhaefner
 
Posts: 20
Joined: Thu Jan 02, 2014 10:37 am

Postby burkhard kainka » Thu Jan 08, 2009 12:00 am

Bisher habe ich es nur in Assembler gemacht:


AD:cli
cbiACSR,ACD;Komparator einschalten
cbiDDRB,0 ;PORT B0 Hi Z
ldiA,0
ldi Count,255
ldiTemp,0;timeout-Messung
sbiPORTD,ADRC;Ein
Loop1:sbicACSR,ACO
rjmpLoop2
decTemp
brneLoop1;max 256 Durchläufe
Loop2:sbicACSR,ACO;1 /2
rjmpON;2
nop;1
sbiPORTD,ADRC; 2
rjmpNext; 2
ON:cbiPORTD,ADRC;2
incA;1
nop; 1
Next:decCount; 1
brneLoop2; 2 ,10*256, ca. 300us
cbiPORTD,ADRC
sbiDDRB,0 ;PORT B0 Low
comA
movPA,A
sbiACSR,ACD;Komparator abschalten
sei
ret


Man könnte vielleicht versuchen, etwas ASM-Text in Bascom zu nehmen. Das Problem ist nämlich, dass die Zeiten genau stimmen müssen, damit das Verfahren linear wird. Vielleicht könnte man es auch in Bascom ganz anders machen und einen Timer dafür nehmen. Die Chance besteht darin, auch mehr als 8 oder 10 Bits aufzulösen.
burkhard kainka
 
Posts: 736
Joined: Thu Jan 02, 2014 10:41 am

Postby mhaefner » Tue Jan 13, 2009 12:00 am

OK, das klappt zwar, ist aber ein Fulltime-Job für den Prozessor.

Werde über einen Timer-Interrupt eine Zählvariable erhöhen und diese dann beim Comparator-Interrupt auslesen. Die etwas längere Wandlungsdauer und 8-bit reicht mir.

Das RC-Glied kann man ja anpassen, so dass sich ein einigermassen linearer Verlauf ergibt. Das habe ich mit Assembler schon öfter gemacht, geht zufriedenstellend. Der Wert muss allerdings kräftig integriert werden, da sonst Störimpulse zu stark schwankenden Ergebnissen führen können.

Manfred
mhaefner
 
Posts: 20
Joined: Thu Jan 02, 2014 10:37 am


Return to BASCOM-AVR-Kurs

Who is online

Users browsing this forum: No registered users and 1 guest