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
Wenn Du uns noch verraten kannst, was für Fehlermeldungen geht es schneller :-) R.
AmAnfang schrieb: > ich erhalte Fehlermeldungen und weiss nicht wo die Fehler sind . Und die sehen wie aus?
> .. ADC-Register eingestellt.. Einen ADC zu lesen ist etwas mehr als nur ein Register einstellen. Such mal im AVR tutorial
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
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
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
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...
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....
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.