Forum: Mikrocontroller und Digitale Elektronik Attiny26_Spannungerfassung


von AmAnfang (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich verwende Attiny26 zur Erfassung von Spannung. Hier Möchte ich 
Spannung erfassen und diese von LCD anzeigenlassen. Hierfür habe ich 
zunächst das ADC-Register eingestellt...So dann Habe ich das LCD 
initialisiert usw.. Mein Programm funktioniert nicht, ich erhalte 
Fehlermeldungen und weiss nicht wo die Fehler sind .

Kann mir da jemand sagen, wo meine Fehler sind und was ich alles falsch 
mache?

Quellqode ist beigefügt

Mfg

: Verschoben durch User
von Rene H. (Gast)


Lesenswert?

Wenn Du uns noch verraten kannst, was für Fehlermeldungen geht es 
schneller :-)

R.

von Timmo H. (masterfx)


Lesenswert?

AmAnfang schrieb:
> ich erhalte Fehlermeldungen und weiss nicht wo die Fehler sind .

Und die sehen wie aus?

von Pandur S. (jetztnicht)


Lesenswert?

> .. ADC-Register eingestellt..

Einen ADC zu lesen ist etwas mehr als nur ein Register einstellen. Such 
mal im AVR tutorial

von AmAnfang (Gast)


Lesenswert?

Hallo,

die Fehlermeldungen lauten:

C:\AMPEL\Spannunerfassung_LCD\Spannunerfassung_LCD.asm(5): Including 
file 'C:\Program Files\Atmel\AVR 
Tools\AvrAssembler2\Appnotes\tn26def.inc'
C:\AMPEL\Spannunerfassung_LCD\Spannunerfassung_LCD.asm(77): error: 
Operand(s) out of range in 'ldi r18,0xa98ac6'
C:\AMPEL\Spannunerfassung_LCD\Spannunerfassung_LCD.asm(230): No EEPROM 
data, deleting C:\AMPEL\Spannunerfassung_LCD\Spannunerfassung_LCD.eep

von Pandur S. (jetztnicht)


Lesenswert?

Also. Erstens Mach mal das LCD alleine. Also nur einen String anzeigen, 
sonst nichts. Zweitens mach den ADC alleine, kontrollier ueber einen 
Pin, zB wenn fertig.

: Bearbeitet durch User
von BEN (Gast)


Lesenswert?

Jetzt N. schrieb:
> Einen ADC zu lesen ist etwas mehr als nur ein Register einstellen. Such
> mal im AVR tutorial



Was meinst du damit? ich habe im Tutorial danach gesucht und auch mich 
danach gerichtet

von Tcf K. (tcfkao)


Lesenswert?

Mache mal in Spannunerfassung_LCD.asm in Zeile 75 ein 0b davor:
Alt: ldi mp1,11111110
Neu: ldi mp1,0b11111110

Dann sollte es zumindest compilieren...

von BEN (Gast)


Lesenswert?

oh

Tcf K. schrieb:
> Mache mal in Spannunerfassung_LCD.asm in Zeile 75 ein 0b davor:
> Alt: ldi mp1,11111110
> Neu: ldi mp1,0b11111110
>
> Dann sollte es zumindest compilieren...

Ich habe es jetzt verändert und es funktioniert soweit....

von AmAnfang (Gast)


Lesenswert?

Ich möchte zusätzlich die Spannung, die erfasst wurde, im LCD ausgeben 
lassen.
Im LCD soll stehen:

Spannung X V  , X=5

1.Schritt
; Text Spannung ausgeben
 ; Einen konstanten Text aus dem Flash Speicher
 ; ausgeben. Der Text wird mit einer 0 beendet
lcd_flash_string:
           push  temp1
           push  ZH
           push  ZL

lcd_flash_string_1:
           lpm   temp1, Z+
           cpi   temp1, 0
           breq  lcd_flash_string_2
           rcall  lcd_data
           rjmp  lcd_flash_string_1

lcd_flash_string_2:
           pop   ZL
           pop   ZH
           pop   temp1
           ret

rcall LCD_init
rcall LCD_clear

ldi ZL, LOW(text*2)         ; Adresse des Strings in den
ldi ZH, HIGH(text*2)        ; Z-Pointer laden
rcall lcd_flash_string      ; Unterprogramm gibt String aus der
                                       ; durch den Z-Pointer adressiert 
wird
loop:
      rjmp loop

text:
.db "Spannung",0                ; Stringkonstante, durch eine 0
                                       ; abgeschlossen


2.Schritte
Die Zahl 5 ausgeben

Die Zahl 5 liegt ja nicht im 100 ter Bereich, muss ich trotzdem wie im 
Tutorial vorgehen (also 100er, 10er, 1er)??
Ist der erste Schritt richtig?

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.