loetstelle.net
Lötstelle Userforum
 
 FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen   RegistrierenRegistrieren 
 ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin 

Menü für LCD Realisieren
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Sa 04.Dez 2010 16:02:35    Titel: Bauteile finden Antworten mit Zitat

Edit: Ich habe gerade den Fehler gefunden, jetzt funktioniert alles super. Very Happy . Anbei trotzdem mal das aktuelle Programm.
Code:
$regfile = "M162def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


'**********************************************************************
'Konfiguration
'**********************************************************************

Taster_umstellen Alias Pina.0       'Taster umstellen (orange)
Config Taster_umstellen = Input
Porta.0 = 1

Taster_untermenue_vor Alias Pina.1       'Taster Untermenü vor (grau)
Config Taster_untermenue_vor = Input
Porta.1 = 1

Taster_untermenue_zurueck Alias Pina.2       'Taster Untermenü zurück (grau)
Config Taster_untermenue_zurueck = Input
Porta.2 = 1

Taster_hauptmenue_vor Alias Pina.3       'Taster Hauptmenü vor (schwarz)
Config Taster_hauptmenue_vor = Input
Porta.3 = 1

Taster_hauptmenue_zurueck Alias Pina.4       'Taster Hauptmenü zurück (schwarz)
Config Taster_hauptmenue_zurueck = Input
Porta.4 = 1


Config Lcdpin = Pin , Db4 = Porte.0 , Db5 = Porta.7 , Db6 = Porta.6 , _
   Db7 = Porta.5 , E = Porte.1 , Rs = Porte.2
Config Lcd = 20 * 4
Initlcd
Cls
Waitms 100
Cursor Off Noblink




Dim Hauptmenue As Byte
Dim Untermenue4 As Byte
Dim Untermenue5 As Byte
Dim Untermenue6 As Byte
Dim Untermenue7 As Byte
Dim Untermenue8 As Byte
Dim Umstellen1 As Byte
Dim Umstellen2 As Byte
Dim Umstellen3 As Byte
Dim Umstellen41 As Byte
Dim Umstellen42 As Byte
Dim Umstellen51 As Byte
Dim Umstellen52 As Byte
Dim Umstellen61 As Byte
Dim Umstellen62 As Byte
Dim Umstellen63 As Byte
Dim Umstellen64 As Byte
Dim Umstellen71 As Byte
Dim Umstellen72 As Byte
Dim Umstellen73 As Byte




'**********************************************************************
'LCD-Sonderzeichen
'**********************************************************************

Deflcdchar 0 , 31 , 31 , 31 , 31 , 31 , 31 , 31 , 31       ' replace ? with number (0-7)


'**********************************************************************
'Programmstart
'**********************************************************************
Locate 2 , 6
Lcd "Willkommen"

Wait 2

Cls
Locate 2 , 5
Lcd "Display-Test"
Wait 2

Cls
Locate 1 , 1
Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0)

Locate 2 , 1
Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0)

Locate 3 , 1
Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0)

Locate 4 , 1
Lcd Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; _
    Chr(0) ; Chr(0) ; Chr(0) ; Chr(0) ; Chr(0)

Wait 1



Cls
Locate 1 , 3
Lcd "Programmhinweis"
Locate 3 , 1
Lcd "Version : 1.4"
Locate 4 , 1
Lcd "Erstellt: 04.12.2010"

Wait 2

Hauptmenue = 1
Untermenue4 = 1
Untermenue5 = 1
Untermenue6 = 1
Untermenue7 = 1
Untermenue8 = 2
Umstellen1 = 1
Umstellen2 = 1
Umstellen3 = 1
Umstellen41 = 1
Umstellen42 = 1
Umstellen51 = 1
Umstellen52 = 1
Umstellen61 = 1
Umstellen62 = 1
Umstellen63 = 1
Umstellen64 = 1
Umstellen71 = 1
Umstellen72 = 1
Umstellen73 = 1

Gosub Menue

'**********************************************************************
'Hauptprogramm
'**********************************************************************

Do
Main:

Debounce Taster_hauptmenue_vor , 0 , Hauptmenue_vor , Sub


Debounce Taster_hauptmenue_zurueck , 0 , Hauptmenue_zurueck , Sub


Debounce Taster_untermenue_vor , 0 , Untermenue_vor , Sub


Debounce Taster_untermenue_zurueck , 0 , Untermenue_zurueck , Sub


Debounce Taster_umstellen , 0 , Umstellen , Sub

Loop
End


Menue:

If Hauptmenue > 8 Then Hauptmenue = 1
If Hauptmenue < 1 Then Hauptmenue = 8

   Select Case Hauptmenue
   Case 1:
      Cls
      Locate 1 , 1
      Lcd "<Beleuchtung gesamt>"

   Case 2:
      Cls
      Locate 1 , 1
      Lcd "<Haeuserbeleuchtung>"

   Case 3:
      Cls
      Locate 1 , 1
      Lcd "<Strassen-         >"
      Locate 2 , 2
      Lcd "beleuchtung"

   Case 4:
      Cls
      Locate 1 , 1
      Lcd "<Bahnhof           >"

   Case 5:
      Cls
      Locate 1 , 1
      Lcd "<Marktplatz        >"

   Case 6:
      Cls
      Locate 1 , 1
      Lcd "<Bahnbetriebswerk  >"

   Case 7:
      Cls
      Locate 1 , 1
      Lcd "<Pension           >"

   Case 8:
      Cls
      Locate 1 , 1
      Lcd "<Fahrzeug-         >"
      Locate 2 , 2
      Lcd "automatikbetrieb"
   End Select

Gosub Anzeigen



Hauptmenue_vor:
   Incr Hauptmenue
   Gosub Menue


Hauptmenue_zurueck:
   Decr Hauptmenue
   Gosub Menue


Untermenue_vor:
   If Hauptmenue = 4 Then
      Incr Untermenue4
      End If
      If Untermenue4 > 2 Then Untermenue4 = 1

   If Hauptmenue = 5 Then
      Incr Untermenue5
      End If
      If Untermenue5 > 2 Then Untermenue5 = 1

   If Hauptmenue = 6 Then
      Incr Untermenue6
      End If
      If Untermenue6 > 4 Then Untermenue6 = 1

   If Hauptmenue = 7 Then
      Incr Untermenue7
      End If
      If Untermenue7 > 3 Then Untermenue7 = 1

   If Hauptmenue = 8 Then
      Incr Untermenue8
      End If
      If Untermenue8 > 4 Then Untermenue8 = 1

   Gosub Anzeigen


Untermenue_zurueck:
   If Hauptmenue = 4 Then
      Decr Untermenue4
      End If
      If Untermenue4 < 1 Then Untermenue4 = 2

   If Hauptmenue = 5 Then
      Decr Untermenue5
      End If
      If Untermenue5 < 1 Then Untermenue5 = 2

   If Hauptmenue = 6 Then
      Decr Untermenue6
      End If
      If Untermenue6 < 1 Then Untermenue6 = 4

   If Hauptmenue = 7 Then
      Decr Untermenue7
      End If
      If Untermenue7 < 1 Then Untermenue7 = 3

    If Hauptmenue = 8 Then
      Decr Untermenue8
      End If
      If Untermenue8 < 1 Then Untermenue8 = 4

   Gosub Anzeigen





 Umstellen:
   If Hauptmenue = 1 Then
   Incr Umstellen1
      End If
      If Umstellen1 > 2 Then Umstellen1 = 1

   If Hauptmenue = 2 Then
   Incr Umstellen2
      End If
      If Umstellen2 > 2 Then Umstellen2 = 1

   If Hauptmenue = 3 Then
   Incr Umstellen3
      End If
      If Umstellen3 > 2 Then Umstellen3 = 1


   If Hauptmenue = 4 Then
   If Untermenue4 = 1 Then
   Incr Umstellen41
      End If
      If Umstellen41 > 2 Then Umstellen41 = 1

   If Untermenue4 = 2 Then
   Incr Umstellen42
      End If
      End If
      If Umstellen42 > 2 Then Umstellen42 = 1


   If Hauptmenue = 5 Then
   If Untermenue5 = 1 Then
   Incr Umstellen51
      End If
      If Umstellen51 > 2 Then Umstellen51 = 1

   If Untermenue5 = 2 Then
   Incr Umstellen52
      End If
      End If
      If Umstellen52 > 2 Then Umstellen52 = 1


   If Hauptmenue = 6 Then
   If Untermenue6 = 1 Then
   Incr Umstellen61
      End If
      If Umstellen61 > 2 Then Umstellen61 = 1

   If Untermenue6 = 2 Then
   Incr Umstellen62
      End If
      If Umstellen62 > 2 Then Umstellen62 = 1

   If Untermenue6 = 3 Then
   Incr Umstellen63
      End If
      If Umstellen63 > 2 Then Umstellen63 = 1

   If Untermenue6 = 4 Then
   Incr Umstellen64
      End If
      End If
      If Umstellen64 > 2 Then Umstellen64 = 1



   If Hauptmenue = 7 Then
   If Untermenue7 = 1 Then
   Incr Umstellen71
      End If
      If Umstellen71 > 2 Then Umstellen71 = 1

   If Untermenue7 = 2 Then
   Incr Umstellen72
      End If
      If Umstellen72 > 2 Then Umstellen72 = 1

   If Untermenue7 = 3 Then
   Incr Umstellen73
      End If
      End If
      If Umstellen73 > 2 Then Umstellen73 = 1

   Gosub Anzeigen




 Anzeigen:

      If Hauptmenue = 4 Then
      If Untermenue4 = 1 Then
      Locate 3 , 1
      Lcd "<Aussenbeleuchtung >"
      End If

      If Untermenue4 = 2 Then
      Locate 3 , 1
      Lcd "<Innenbeleuchtung  >"
      End If
      End If


      If Hauptmenue = 5 Then
      If Untermenue5 = 1 Then
      Locate 3 , 1
      Lcd "<Aussenbeleuchtung >"
      End If

      If Untermenue5 = 2 Then
      Locate 3 , 1
      Lcd "<Buehne            >"
      End If
      End If


      If Hauptmenue = 6 Then
      If Untermenue6 = 1 Then
      Locate 3 , 1
      Lcd "<Aussenbeleuchtung >"
      End If

      If Untermenue6 = 2 Then
      Locate 3 , 1
      Lcd "<Innenbeleuchtung  >"
      End If

      If Untermenue6 = 3 Then
      Locate 3 , 1
      Lcd "<Grubenbeleuchtung >"
      End If

      If Untermenue6 = 4 Then
      Locate 3 , 1
      Lcd "<Schweisslicht     >"
      End If
      End If


      If Hauptmenue = 7 Then
      If Untermenue7 = 1 Then
      Locate 3 , 1
      Lcd "<Aussenbeleuchtung >"
      End If

      If Untermenue7 = 2 Then
      Locate 3 , 1
      Lcd "<Innenbeleuchtung  >"
      End If

      If Untermenue7 = 3 Then
      Locate 3 , 1
      Lcd "<Lagerfeuer        >"
      End If
      End If


      If Hauptmenue = 8 Then
      If Untermenue8 = 1 Then
      Locate 4 , 1
      Lcd "<Aus               >"
      End If

      If Untermenue8 = 2 Then
      Locate 4 , 1
      Lcd "<1 Fahrzeug        >"
      End If

      If Untermenue8 = 3 Then
      Locate 4 , 1
      Lcd "<2 Fahrzeug        >"
      End If

      If Untermenue8 = 4 Then
      Locate 4 , 1
      Lcd "<3 Fahrzeug        >"
      End If
      End If

      If Hauptmenue = 1 Then
      If Umstellen1 = 1 And Taster_umstellen = 0 Then
      Umstellen2 = 1
      Umstellen3 = 1
      Umstellen41 = 1
      Umstellen42 = 1
      Umstellen51 = 1
      Umstellen52 = 1
      Umstellen61 = 1
      Umstellen62 = 1
      Umstellen63 = 1
      Umstellen64 = 1
      Umstellen71 = 1
      Umstellen72 = 1
      Umstellen73 = 1
      End If
      If Umstellen1 = 1 Then
      Gosub Lcdaus
      End If

      If Umstellen1 = 2 Then
      Umstellen1 = 2
      Umstellen2 = 2
      Umstellen3 = 2
      Umstellen41 = 2
      Umstellen42 = 2
      Umstellen51 = 2
      Umstellen52 = 1
      Umstellen61 = 2
      Umstellen62 = 2
      Umstellen63 = 2
      Umstellen64 = 2
      Umstellen71 = 2
      Umstellen72 = 2
      Umstellen73 = 2
      Gosub Lcdein
      End If
      End If


      If Hauptmenue = 2 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen2 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen2 = 2 Then
      Gosub Lcdein
      End If
      End If


      If Hauptmenue = 3 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen3 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen3 = 2 Then
      Gosub Lcdein
      End If
      End If



      If Hauptmenue = 4 Then
      If Untermenue4 = 1 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen41 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen41 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Untermenue4 = 2 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen42 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen42 = 2 Then
      Gosub Lcdein
      End If
      End If
      End If


      If Hauptmenue = 5 Then
      If Untermenue5 = 1 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen51 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen51 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Untermenue5 = 2 Then
      If Umstellen52 = 1 Then
      Gosub Lcdaus
      End If

      If Umstellen52 = 2 Then
      Gosub Lcdein
      End If
      End If
      End If


      If Hauptmenue = 6 Then
      If Untermenue6 = 1 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen61 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen61 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Untermenue6 = 2 Then
      If Umstellen62 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen62 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Untermenue6 = 3 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen63 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen63 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Untermenue6 = 4 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen64 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen64 = 2 Then
      Gosub Lcdein
      End If
      End If
      End If


      If Hauptmenue = 7 Then
      If Untermenue7 = 1 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen71 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen71 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Untermenue7 = 2 Then
      If Umstellen72 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen72 = 2 Then
      Gosub Lcdein
      End If
      End If

      If Untermenue7 = 3 Then
      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen73 = 1 Then
      Gosub Lcdaus
      End If

      If Taster_umstellen = 0 Then Umstellen1 = 0
      If Umstellen73 = 2 Then
      Gosub Lcdein
      End If
      End If
      End If

      If Umstellen1 = 0 And Hauptmenue = 1 Then
      Gosub Lcderror
      End If

      Gosub Main


 Lcdaus:
      Locate 4 , 1
      Lcd " Aus               >"

      Return

 Lcdein:
      Locate 4 , 1
      Lcd "<Ein                "

      Return

 Lcderror:
      Locate 4 , 1
      Lcd "Zustand undefiniert>"



      Return

_________________
www.lang-gartenbahn.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Hotzenplotz



Anmeldungsdatum: 14.03.2008
Beiträge: 2212
Wohnort: /sda3/home

BeitragVerfasst am: Sa 04.Dez 2010 16:21:29    Titel: Bauteile finden Antworten mit Zitat

Hat es irgendeinen tieferen Sinn, warum Du die Ports so durcheinander wuerfelst ?
Drei Beitraege vorher hast Du geschrieben das Dir der AVR zu langsam ist. Warum taktest Du ihn dann mit "nur" 1MHz ? Lass den doch laufen, der pennt ja ein.

Du schreibst das Projekt von Seite 4 waere fertig. Kannst Du den Quelltext als Datei anhaengen, wuerde ich gerne mal ausprobieren. Evtl. mit HEX, falls es groesser als die 4k sein sollte.

_________________
Lasst uns Spass haben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: So 05.Dez 2010 09:24:00    Titel: Bauteile finden Antworten mit Zitat

Hotzenplotz hat folgendes geschrieben:
Hat es irgendeinen tieferen Sinn, warum Du die Ports so durcheinander wuerfelst ?

Weil das Grundproblem (Menü) dasselbe war.

Hotzenplotz hat folgendes geschrieben:
Drei Beitraege vorher hast Du geschrieben das Dir der AVR zu langsam ist. Warum taktest Du ihn dann mit "nur" 1MHz ? Lass den doch laufen, der pennt ja ein.
Wie funktioniert denn das? Wenn ich den Wert bei "$crystal"erhöhe, wird er eher langsamer.

Hotzenplotz hat folgendes geschrieben:
Du schreibst das Projekt von Seite 4 waere fertig. Kannst Du den Quelltext als Datei anhaengen, wuerde ich gerne mal ausprobieren. Evtl. mit HEX, falls es groesser als die 4k sein sollte.

Das Projekt ist fertig, bzw. beendet. Wir haben uns für dieses Problem eine andere Lösung. Das Programm hat aber funktioniert.

_________________
www.lang-gartenbahn.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
pcprofi



Anmeldungsdatum: 17.02.2008
Beiträge: 1459
Wohnort: Düren

BeitragVerfasst am: So 05.Dez 2010 09:32:37    Titel: Bauteile finden Antworten mit Zitat

Zitat:
Hotzenplotz hat folgendes geschrieben:
Drei Beitraege vorher hast Du geschrieben das Dir der AVR zu langsam ist. Warum taktest Du ihn dann mit "nur" 1MHz ? Lass den doch laufen, der pennt ja ein.
Wie funktioniert denn das? Wenn ich den Wert bei "$crystal"erhöhe, wird er eher langsamer.


Indem man sich mit dem Datenblatt bzw. der BASCOM Hilfe befasst. Dort steht nämlich drinne, das die Arbeitsfrequenz über die Fusebits eingestellt wird.

_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
BellaD



Anmeldungsdatum: 03.12.2006
Beiträge: 1708
Wohnort: Klinik der misshandelten Kuscheltiere

BeitragVerfasst am: So 05.Dez 2010 17:18:22    Titel: Bauteile finden Antworten mit Zitat

moin

If then ist aber auf dauer ganz schön langweilig Wink
wie wäre es denn mal mit SelectCase oder Tabellen mit ADR

siehe
http://www.rn-wissen.de/index.php/Bascom_State_Machine_Menu

ADR / ADR2
http://avrhelp.mcselec.com/index.html

mfg

_________________
Eine Weiterverbreitung ohne ausdrückliche Genehmigung ist untersagt. Für Schäden, lehnen wir jegliche Haftung ab.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Anzeige






Verfasst am: Heute 17:59:02    Titel: Bauteile finden

Nach oben
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM Alle Zeiten sind GMT + 1 Stunde
Gehe zu Seite Zurück  1, 2, 3, 4, 5, 6
Seite 6 von 6

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.
Du kannst Dateien in diesem Forum nicht posten
Du kannst Dateien in diesem Forum nicht herunterladen


Powered by phpBB 2.x © 2001, 2002 phpBB Group

Sie sind Besucher Nr. 1222239
©opyright by Markus Vohburger 2005 All Rights reserved