AVR, Problem mit einer Funktion (Bascom)

Gast #1361491
Lesenswert?

Hallo, ich habe habe ein Problem mit einer Funktion welche absolut nicht 
das macht was ich will ;) Vielleicht hab ich ja etwas falsch verstanden 
oder einen ziemlich dämlichen Fehler eingebaut, den ich jedenfalls nach 
langen rumprobieren nicht finden kann.

(Als Hardware zum Probieren habe ich einen Atmega8, an dem ein Display 
und ein Keypad hängt was auch beides funktioniert.)

Der Aufruf der Funktion sieht wie folgt aus (Restlicher Quellcode im 
Anhang):
1
Do 
2
Userinput Temp , "Benutzereingabe:" , 4
3
Cls
4
Lcd Temp
5
Wait 3
6
Loop

Auf dem Display soll in der ersten Zeile "Benutzereingabe:" angezeigt 
[Funktioniert nicht] werden, in der Zeile darunter kann man jetzt eine 
vierstellige Zahl eintippen, dass Ergebnis der Eingabe soll in der 
Variablen Temp gespeichert werden und danach als Bsp auf dem Display 
angezeigt werden[klappt ebenfalls nicht].
Kompilieren geht übrigens ohne Probleme.

VIELEN DANK im voraus, hoffe dass ich mich nicht ganz dämlich angestellt 
habe ^^
Angehängte Dateien:
Gast #1362207
Lesenswert?

Hi, Danke für die Antwort, hab es mal mit...
1
Call Userinput(temp , "Benutzereingabe:" , 4)

probiert, keine Änderung / selbe Probleme, anscheinend kann man die 
Funktion auch ohne "Call" aufrufen.

Gruß zurück aus kleinem Kaff nahe Köln ^^
#1362267
Lesenswert?

Hallo Michael,

ich hab so sachen lieber im code, da kann auch ein fremder, wie
wir jetzt z.B. den code lesen und nicht nur vermutungen anstellen


noch ein tip, falls du das lcd an den jtag pins angeschlossen hast
must du jtag disable bit setzen


weiterhin viel erfolg & vlg
Charly
Gast #1362269
Lesenswert?

Ich noch mal...

Was mir eben noch auffällt:
In der Funktion definierst Du 2 Subs, die aber weder jemals angesprungen 
noch mit einem "Return" abgeschlossen werden.

>Gruß zurück aus kleinem Kaff nahe Köln

Na, dann grüße ich doch mal zurück in die alte Heimat (bin gelernter 
Niederrheiner) ;-)

Ralph
Gast #1362277
Lesenswert?

Hallo  Charly B.!
Ist ja richtig. Mein Problem liegt Jahre zurück und ist geklärt. Ich 
wollte dem  Oneil121 nur sagen, das er die Voreinstellungen überprüfen 
soll.
Ich mach jetzt Schluß! Gute Nacht!
Gast #1362325
Lesenswert?

So nochmal Danke fürs drüber gucken und die vielen Antworten, hab gerade 
erst gesehen das ich den oberen Teil vom Quellcode versehentlich nicht 
mit kopiert habe und mich evtl. was ungeschickt ausgedrückt habe.
1
$regfile = "m8def.dat"                                      'Atmega = m8def.dat
2

3
$crystal = 8000000                                          'Externen Quarz (8MHz)
4

5
'display konfig
6
Config Lcd = 16 * 2
7
Config Lcdpin = Pin , Db4 = Portb.5 , Db5 = Portb.4 , Db6 = Portb.3 , Db7 = Portb.2 , E = Portb.0 , Rs = Portb.1
8
Config Lcdbus = 4
9

10
'Konfiguration des Keypads
11
Config Kbd = Portd , Debounce = 20 , Delay = 10

Also das Display selbst geht ohne Probleme, kann beliebigen Text etc. 
auch anzeigen lassen mit lcd "test" ...

Ich meinte das in der ersten Zeile der String "Question" welcher beim 
Aufrufen der Funktion festgelegt wird NICHT angezeigt wird,
1
 Userinput Temp , "Benutzereingabe:" , 4
2

3
...
4

5
Function Userinput(byval Question As String , Byval Length As Byte) As Word


der Rest funktioniert soweit, ich kann was eintippen was auch korrekt 
auf dem Display zu sehen ist.

Das Zweite was nicht Funktioniert hat war, dass die Eingabe die man auf 
dem Keypad getätigt hat auch in der Variablen "temp" gespeichert wird. 
"Temp" ist trotz aufrufen der Funktion und Eingabe danach immer noch "0" 
wie zuvor. (Folgenes führt auch nicht zum Erfolg: )
1
temp = userinput("HierString",4)

Gruß Oneil121

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