Bascom Problem - nächstes Bild/Grafik mit Taster schalten

Gast #2734584
Lesenswert?

Hallo,
ich bin grade dabei einen kleinen digitalen Bilderrahmen zu bauen.
Die Bilder (ca.8 Stück) werden in einem mega1284p gespeichert und über 
ein
Nokia 6100 Display dargestellt.
Bisher werden die Bilder automatisch alle 7 Sekunden gewechselt.
Nun möchte ich aber die Bilder über einen Taster wechseln.
Bei einem kurzen Tastendruck soll das nächste Bild angezeigt werden.

Ich habe aber das Problem das ich nicht weiss wie ich den Showpic-Befehl 
in den Code einbinden soll. (Der Rest des Codes sollte sich von selbst 
erklären)
Ich habe bisher folgendes versucht:

Dim Bild(8) as Byte
Dim B as Integer

Bild(1) = Showpic 0 , 0 , Picture 1
Bild(2) = Showpic 0 , 0 , Picture 2
....
Bild(8) = Showpic 0 , 0 , Picture 8

Do
If PinD.6 = 0 Then
  Incr B
   If B = 9 Then B = 1
  wait 1
End if

Leider funktioniert das nicht da Bascom meldet:
"Source variable does not match the target variable"

Kann mir jemand sagen wie der Code aussehen muss oder was ich ändern 
muss, damit die Funktion gegeben ist?
Danke schonmal im Vorraus
Gast #2734609
Lesenswert?

Hallo,

du hast ein Systax-Problem in den "showpic"-Zeilen. Wie in der 
BASCOM-Hilfe nachzulesen, ist dieses Kommando keine Funktion, die einen 
Wert zurückliefert (so wie du sie verwendet hast), sondern ein 
Programmteil.
Somit muss der Aufruf richtig lauten:

>> Showpic 0 , 0 , Picture 1

wobei es nicht gut ist, Leerzeichen in Variablen- bzw. Labelnamen zu 
verwenden; es ist schlecht lesbar. Besser wäre daher statt "Picture 1":

>> Showpic 0 , 0 , Picture_1
oder
>> Showpic 0 , 0 , Picture1

Die Abfrage der einzelnen Bilder kann man mit einem "select case"-Block 
machen, wobei der Index "B" die Laufvariable ist:

>>Select Case B
>>  Case 1 : Showpic 0 , 0 , Picture_1
>>  Case 2 : Showpic 0 , 0 , Picture_2
>>  Case 3 : Showpic 0 , 0 , Picture_3
>>  ...
>>End Select

Die Variable "Bild(8)" ist nicht erforderlich.

MfG

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