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  Weiter
 
Neues Thema eröffnen   Neue Antwort erstellen    loetstelle.net Foren-Übersicht -> BASCOM
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Sam



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: So 24.Okt 2010 18:00:06    Titel: Bauteile finden Antworten mit Zitat

Das wird gerade die einzige Möglichkeit sein.
_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hotzenplotz



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

BeitragVerfasst am: So 24.Okt 2010 18:25:23    Titel: Bauteile finden Antworten mit Zitat

Mit Deinem letzten Code gibt es bei mir auch keine Fehler. Flashen mag ich das aber jetzt nicht, weil ich keine Lust habe ein LCD umzuloeten.
_________________
Lasst uns Spass haben...
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Sam



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: So 24.Okt 2010 19:16:36    Titel: Bauteile finden Antworten mit Zitat

Rein theoretisch könnte man versuchen, den Befehl mit Assembler zu setzen. Allerdings habe ich davon keine Ahnung.
_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
Hotzenplotz



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

BeitragVerfasst am: So 24.Okt 2010 19:39:19    Titel: Bauteile finden Antworten mit Zitat

Halte ich fuer unnoetig.
Man muesste erst einmal herausfinden, ob der Fehler im Code oder an seinem Compiler / Einstellungen liegt. Und da kann ich bei BASCOM nicht mitreden. Ich habe es installiert, Quelltext eingefuegt, abegespeichert, compiliert. Ging ohne Fehler.

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



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: So 24.Okt 2010 20:27:24    Titel: Bauteile finden Antworten mit Zitat

Er könnte auch versuchen, ob es nach einer Neuinstallation funktioniert.
_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Mo 25.Okt 2010 17:03:20    Titel: Bauteile finden Antworten mit Zitat

Hallo,

die Neuinstallation war der Schlüssel zum Erfolg.

Der Code funktioniert auch fast, außer das bei der Funktion "LCD-Beleuchtung" [Ein] die Hintergrundbeleuchtung auch nach 5 Sekunden ausgeht.

Außerdem ist mir anhand der Status Led aufgefallen, dass das Programm öfters mal sehr lange braucht ehe es wieder reagiert. Es hängt sich also regelrecht auf. Das merkt man auch daran, dass man dann Drücken kann wo man will, es passiert aber nichts.

LG Felix

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



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: Mo 25.Okt 2010 17:27:06    Titel: Bauteile finden Antworten mit Zitat

Probier's mal so:

Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


Mcucr = &B00001010
Gicr = &B11000000
Sreg.7 = 1

Taster_1 Alias Pind.2       'grau
Config Taster_1 = Input
Portd.2 = 1

Taster_2 Alias Pind.3       'grau
Config Taster_2 = Input
Portd.3 = 1

Taster_3 Alias Pind.4       'orange
Config Taster_3 = Input
Portd.4 = 1

Melder_1 Alias Pinb.4       '10 cm
Config Melder_1 = Input
Portb.4 = 1

Melder_2 Alias Pinb.3       '10 cm
Config Melder_2 = Input
Portb.3 = 1

Melder_3 Alias Pinb.2       '10 cm
Config Melder_3 = Input
Portb.2 = 1

Melder_4 Alias Pinb.1       '10 cm
Config Melder_4 = Input
Portb.1 = 1


Led_1 Alias Portc.4       'rot
Config Led_1 = Output

Led_2 Alias Portc.5       'gelb
Config Led_2 = Output

Led_3 Alias Portc.3       'grün
Config Led_3 = Output

Led_4 Alias Portc.2       'rot
Config Led_4 = Output

Led_5 Alias Portc.1       'gelb
Config Led_5 = Output

Led_6 Alias Portc.0       'grün
Config Led_6 = Output

Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , _
Db7 = Portb.0 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2
Config Lcdbus = 4
Waitms 200
Cls
Locate 1 , 1
Lcd "Willkommen      "
Wait 1
Cls
Locate 1 , 1
Lcd "Warte auf Befehl"

Enable Timer1
Config Timer1 = Timer , Prescale = 64
On Timer1 Beleuchtung_aus



Dim Menuepunkt As Byte
Dim Umstellen As Byte
Dim Wasserstand As Byte
Dim Batterie As Byte
Dim Pumpe As Byte
Dim Alarm As Byte
Dim Automatik As Byte
Dim Beleuchtung As Byte

Enable Interrupts

On Int0 Menuepunkt
On Int1 Umstellen

Pumpe = 1
Alarm = 2
Automatik = 1
Beleuchtung = 3


If Beleuchtung = 2 Then
   Led_6 = 1
Else
   Led_6 = 0
End If

Do

Toggle Led_1
Waitms 50
Toggle Led_1
Wait 1

Loop
End


Menuepunkt:

   If Beleuchtung = 3 then
      Timer1 = 0
      Led_6 = 1
      Start Timer1
   end if

   Incr Menuepunkt
   If Menuepunkt > 6 Then Menuepunkt = 1
   Select Case Menuepunkt
      Case 1:
         Cls
         Locate 1 , 1
         Lcd "Wasserstand:    "

      Case 2:
        Cls
         Locate 1 , 1
         Lcd "Batteriezustand:"

      Case 3:
         Cls
         Locate 1 , 1
         Lcd "Pumpe:          "

      Case 4:
         Cls
         Locate 1 , 1
         Lcd "Alarm:          "

      Case 5:
         Cls
         Locate 1 , 1
         Lcd "Automatik:      "

      Case 6:
         Cls
         Locate 1 , 1
         Lcd "LCD-Beleuchtung:"

   End Select

   Gosub Anzeigen
Return



Umstellen:

   If Beleuchtung = 3 then
      Timer1 = 0
      Led_6 = 1
      Start Timer1
   end if

   Select Case Menuepunkt
      Case 3
         Incr Pumpe
         If Pumpe > 2 Then Pumpe = 1
      Case 4
         Incr Alarm
         If Alarm > 2 Then Alarm = 1
      Case 5
         Incr Automatik
         If Automatik > 2 Then Automatik = 1
      Case 6
         Incr Beleuchtung
         If Beleuchtung > 3 Then Beleuchtung = 1
   End Select

   Gosub Anzeigen

Return

Anzeigen:

If Pumpe = 1 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Pumpe = 2 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If



If Alarm = 1 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Alarm = 2 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Automatik = 1 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Automatik = 2 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Beleuchtung = 1 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "[Aus]/Ein/Auto  "
   Led_6 = 0
End If

If Beleuchtung = 2 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/[Ein]/Auto  "
   Led_6 = 1
End If

If Beleuchtung = 3 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/Ein/[Auto]  "
   Timer1 = 0
   Led_6 = 1
   Start Timer1
End If

Return

beleuchtung_aus:
Stop Timer1
Wait 5
Led_6 = 0
Return


Hab ich leider vergessen.

_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Mo 25.Okt 2010 17:43:18    Titel: Bauteile finden Antworten mit Zitat

Die Beleuchtung funktioniert, aber wieso bleibt der µC mitten im Programm stehen und läuft dann erst nach einer paar Sekunden weiter?

Edit: Beleuchtung funktioniert immer noch nicht.

_________________
www.lang-gartenbahn.de


Zuletzt bearbeitet von modellfreund am Mo 25.Okt 2010 17:49:54, insgesamt einmal bearbeitet
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Sam



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: Mo 25.Okt 2010 17:49:26    Titel: Bauteile finden Antworten mit Zitat

Nächster Versuch:
Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


Mcucr = &B00001010
Gicr = &B11000000
Sreg.7 = 1

Taster_1 Alias Pind.2       'grau
Config Taster_1 = Input
Portd.2 = 1

Taster_2 Alias Pind.3       'grau
Config Taster_2 = Input
Portd.3 = 1

Taster_3 Alias Pind.4       'orange
Config Taster_3 = Input
Portd.4 = 1

Melder_1 Alias Pinb.4       '10 cm
Config Melder_1 = Input
Portb.4 = 1

Melder_2 Alias Pinb.3       '10 cm
Config Melder_2 = Input
Portb.3 = 1

Melder_3 Alias Pinb.2       '10 cm
Config Melder_3 = Input
Portb.2 = 1

Melder_4 Alias Pinb.1       '10 cm
Config Melder_4 = Input
Portb.1 = 1


Led_1 Alias Portc.4       'rot
Config Led_1 = Output

Led_2 Alias Portc.5       'gelb
Config Led_2 = Output

Led_3 Alias Portc.3       'grün
Config Led_3 = Output

Led_4 Alias Portc.2       'rot
Config Led_4 = Output

Led_5 Alias Portc.1       'gelb
Config Led_5 = Output

Led_6 Alias Portc.0       'grün
Config Led_6 = Output

Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , _
Db7 = Portb.0 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2
Config Lcdbus = 4
Waitms 200
Cls
Locate 1 , 1
Lcd "Willkommen      "
Wait 1
Cls
Locate 1 , 1
Lcd "Warte auf Befehl"

Enable Timer1
Config Timer1 = Timer , Prescale = 64
On Timer1 Beleuchtung_aus



Dim Menuepunkt As Byte
Dim Umstellen As Byte
Dim Wasserstand As Byte
Dim Batterie As Byte
Dim Pumpe As Byte
Dim Alarm As Byte
Dim Automatik As Byte
Dim Beleuchtung As Byte

Enable Interrupts

On Int0 Menuepunkt
On Int1 Umstellen

Pumpe = 1
Alarm = 2
Automatik = 1
Beleuchtung = 3


If Beleuchtung = 2 Then
   Led_6 = 1
Else
   Led_6 = 0
End If

Do

Toggle Led_1
Waitms 50
Toggle Led_1
Wait 1

Loop
End


Menuepunkt:

   If Beleuchtung = 3 then
      Timer1 = 0
      Led_6 = 1
      Start Timer1
   end if

   Incr Menuepunkt
   If Menuepunkt > 6 Then Menuepunkt = 1
   Select Case Menuepunkt
      Case 1:
         Cls
         Locate 1 , 1
         Lcd "Wasserstand:    "

      Case 2:
        Cls
         Locate 1 , 1
         Lcd "Batteriezustand:"

      Case 3:
         Cls
         Locate 1 , 1
         Lcd "Pumpe:          "

      Case 4:
         Cls
         Locate 1 , 1
         Lcd "Alarm:          "

      Case 5:
         Cls
         Locate 1 , 1
         Lcd "Automatik:      "

      Case 6:
         Cls
         Locate 1 , 1
         Lcd "LCD-Beleuchtung:"

   End Select

   Gosub Anzeigen
Return



Umstellen:

   If Beleuchtung = 3 then
      Timer1 = 0
      Led_6 = 1
      Start Timer1
   end if

   Select Case Menuepunkt
      Case 3
         Incr Pumpe
         If Pumpe > 2 Then Pumpe = 1
      Case 4
         Incr Alarm
         If Alarm > 2 Then Alarm = 1
      Case 5
         Incr Automatik
         If Automatik > 2 Then Automatik = 1
      Case 6
         Incr Beleuchtung
         If Beleuchtung > 3 Then Beleuchtung = 1
   End Select

   Gosub Anzeigen

Return

Anzeigen:

If Pumpe = 1 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Pumpe = 2 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If



If Alarm = 1 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Alarm = 2 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Automatik = 1 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Automatik = 2 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Beleuchtung = 1 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "[Aus]/Ein/Auto  "
   Led_6 = 0
End If

If Beleuchtung = 2 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/[Ein]/Auto  "
   Led_6 = 1
End If

If Beleuchtung = 3 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/Ein/[Auto]  "
   Timer1 = 0
   Led_6 = 1
   Start Timer1
End If

Return

beleuchtung_aus:
Stop Timer1
Wait 5
Led_6 = 0
Return

_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Mo 25.Okt 2010 17:58:15    Titel: Bauteile finden Antworten mit Zitat

Also, die Funktion Beleuchtung dauerhaft Ein funktioniert immer noch nicht.

Und das Problem mit der Unterbrechung ist auch nicht weg. Es ist so, dass wenn ich einen der beiden Taster 5 Sekunden nicht betätige, sich innerhalb der nächsten 5 Sekunden auch keine Reaktion zeigt. Danach funktioniert wieder alles.... usw. (das Problem ist nach jeder Eingabe erneut)

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



Anmeldungsdatum: 13.10.2008
Beiträge: 401

BeitragVerfasst am: Mo 25.Okt 2010 18:07:39    Titel: Bauteile finden Antworten mit Zitat

Entschuldigung, das kommt davon, wenn man 10 Sachen gleichzeitig macht. Ich habe das alte reinkopiert.

Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


Mcucr = &B00001010
Gicr = &B11000000
Sreg.7 = 1

Taster_1 Alias Pind.2       'grau
Config Taster_1 = Input
Portd.2 = 1

Taster_2 Alias Pind.3       'grau
Config Taster_2 = Input
Portd.3 = 1

Taster_3 Alias Pind.4       'orange
Config Taster_3 = Input
Portd.4 = 1

Melder_1 Alias Pinb.4       '10 cm
Config Melder_1 = Input
Portb.4 = 1

Melder_2 Alias Pinb.3       '10 cm
Config Melder_2 = Input
Portb.3 = 1

Melder_3 Alias Pinb.2       '10 cm
Config Melder_3 = Input
Portb.2 = 1

Melder_4 Alias Pinb.1       '10 cm
Config Melder_4 = Input
Portb.1 = 1


Led_1 Alias Portc.4       'rot
Config Led_1 = Output

Led_2 Alias Portc.5       'gelb
Config Led_2 = Output

Led_3 Alias Portc.3       'grün
Config Led_3 = Output

Led_4 Alias Portc.2       'rot
Config Led_4 = Output

Led_5 Alias Portc.1       'gelb
Config Led_5 = Output

Led_6 Alias Portc.0       'grün
Config Led_6 = Output

Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , _
Db7 = Portb.0 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2
Config Lcdbus = 4
Waitms 200
Cls
Locate 1 , 1
Lcd "Willkommen      "
Wait 1
Cls
Locate 1 , 1
Lcd "Warte auf Befehl"

Enable Timer1
Config Timer1 = Timer , Prescale = 64
On Timer1 Beleuchtung_aus



Dim Menuepunkt As Byte
Dim Umstellen As Byte
Dim Wasserstand As Byte
Dim Batterie As Byte
Dim Pumpe As Byte
Dim Alarm As Byte
Dim Automatik As Byte
Dim Beleuchtung As Byte

Enable Interrupts

On Int0 Menuepunkt
On Int1 Umstellen

Pumpe = 1
Alarm = 2
Automatik = 1
Beleuchtung = 3


If Beleuchtung = 2 Then
   Led_6 = 1
Else
   Led_6 = 0
End If

Do

Toggle Led_1
Waitms 50
Toggle Led_1
Wait 1

Loop
End


Menuepunkt:

   If Beleuchtung = 3 then
      Timer1 = 0
      Led_6 = 1
      Start Timer1
   end if

   Incr Menuepunkt
   If Menuepunkt > 6 Then Menuepunkt = 1
   Select Case Menuepunkt
      Case 1:
         Cls
         Locate 1 , 1
         Lcd "Wasserstand:    "

      Case 2:
        Cls
         Locate 1 , 1
         Lcd "Batteriezustand:"

      Case 3:
         Cls
         Locate 1 , 1
         Lcd "Pumpe:          "

      Case 4:
         Cls
         Locate 1 , 1
         Lcd "Alarm:          "

      Case 5:
         Cls
         Locate 1 , 1
         Lcd "Automatik:      "

      Case 6:
         Cls
         Locate 1 , 1
         Lcd "LCD-Beleuchtung:"

   End Select

   Gosub Anzeigen
Return



Umstellen:

   If Beleuchtung = 3 then
      Timer1 = 0
      Led_6 = 1
      Start Timer1
   end if

   Select Case Menuepunkt
      Case 3
         Incr Pumpe
         If Pumpe > 2 Then Pumpe = 1
      Case 4
         Incr Alarm
         If Alarm > 2 Then Alarm = 1
      Case 5
         Incr Automatik
         If Automatik > 2 Then Automatik = 1
      Case 6
         Incr Beleuchtung
         If Beleuchtung > 3 Then Beleuchtung = 1
   End Select

   Gosub Anzeigen

Return

Anzeigen:

If Pumpe = 1 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Pumpe = 2 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If



If Alarm = 1 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Alarm = 2 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Automatik = 1 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Automatik = 2 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Beleuchtung = 1 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "[Aus]/Ein/Auto  "
   Led_6 = 0
End If

If Beleuchtung = 2 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/[Ein]/Auto  "
   Led_6 = 1
End If

If Beleuchtung = 3 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/Ein/[Auto]  "
   Timer1 = 0
   Led_6 = 1
   Start Timer1
End If

Return

beleuchtung_aus:
Stop Timer1
Led_6 = 0
Return

_________________
„Zwei Dinge sind unendlich, das Universum und
die menschliche Dummheit, aber bei dem
Universum bin ich mir noch nicht ganz sicher.“
Albert Einstein
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Mo 25.Okt 2010 18:37:03    Titel: Bauteile finden Antworten mit Zitat

Danke. Smile Scheint zu funktionieren, zumindest fällt mir jetzt erstmal nichts negatives auf.
_________________
www.lang-gartenbahn.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Do 18.Nov 2010 17:49:19    Titel: Bauteile finden Antworten mit Zitat

Hallo,

inzwischen ist das Programm so groß geworden, dass ich mir erstmal die Vollversion von bascom-AVR kaufen musste.

Das aktuelle Programm sieht jetzt so aus:
Code:
$regfile = "M8def.dat"
$crystal = 1000000
$hwstack = 100
$swstack = 100
$framesize = 100


Mcucr = &B00001010
Gicr = &B11000000
Sreg.7 = 1


Taster_1 Alias Pind.2       'grau
Config Taster_1 = Input
Portd.2 = 1

Taster_2 Alias Pind.3       'grau
Config Taster_2 = Input
Portd.3 = 1

Taster_3 Alias Pind.4       'orange
Config Taster_3 = Input
Portd.4 = 1

Melder_1 Alias Pinb.4       '10 cm
Config Melder_1 = Input
Portb.4 = 1

Melder_2 Alias Pinb.3       '20 cm
Config Melder_2 = Input
Portb.3 = 1

Melder_3 Alias Pinb.2       '30 cm
Config Melder_3 = Input
Portb.2 = 1

Melder_4 Alias Pinb.1       '40 cm
Config Melder_4 = Input
Portb.1 = 1


Led_1 Alias Portc.4       'rot
Config Led_1 = Output


Led_2 Alias Portc.5       'gelb
Config Led_2 = Output

Led_3 Alias Portc.3       'grün
Config Led_3 = Output

Lcdbeleuchtung Alias Portb.6
Config Lcdbeleuchtung = Output

Lautsprecher Alias Portb.7
Config Lautsprecher = Output

Messergebnis Alias Getadc(0)
Config Adc = Single , Prescaler = Auto , Reference = Avcc






'Wird nicht benötigt!
Led_4 Alias Portc.2       'rot
Config Led_4 = Output

Led_5 Alias Portc.1       'gelb
Config Led_5 = Output

Start Adc



Config Lcdpin = Pin , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , _
Db7 = Portb.0 , E = Portd.1 , Rs = Portd.0
Config Lcd = 16 * 2
Config Lcdbus = 4
Cls
Locate 1 , 1
Lcd "Programm        "
Locate 2 , 1
Lcd "Version      1.7"
Wait 2
Cls
Locate 1 , 1
Lcd "Warte auf       "
Locate 2 , 1
Lcd "Eingabe         "


Enable Timer1
Enable Timer0
Config Timer1 = Timer , Prescale = 64
Config Timer0 = Timer , Prescale = 8
On Timer1 Beleuchtung_aus
On Timer0 Signal



Dim Menuepunkt As Byte
Dim Umstellen As Byte
Dim Wasserstand As Byte
Dim Batterie As Byte
Dim Pumpe As Byte
Dim Alarm As Byte
Dim Automatik As Byte
Dim Beleuchtung As Byte
Dim Messergebnis As Long


Enable Interrupts

On Int0 Menuepunkt
On Int1 Umstellen








Pumpe = 1
Alarm = 2
Automatik = 1
Beleuchtung = 3


If Beleuchtung = 2 Then
   Lcdbeleuchtung = 1
Else
   Lcdbeleuchtung = 0
End If

Do




If Melder_1 = 0 Then
   Gosub B
End If

If Melder_2 = 0 Then
   Gosub B
End If

If Melder_3 = 0 Then
   Gosub B
End If

If Melder_4 = 0 Then
   Gosub B
End If


If Menuepunkt = 1 And Melder_1 = 0 Then
   Gosub C
End If

If Menuepunkt = 1 And Melder_2 = 0 Then
   Gosub D
End If

If Menuepunkt = 1 And Melder_3 = 0 Then
   Gosub E
End If

If Menuepunkt = 1 And Melder_4 = 0 Then
   Gosub F
End If


If Automatik = 2 And Melder_2 = 0 And Melder_3 = 0 And Melder_4 = 0 Then
   Led_2 = 1
End If

If Menuepunkt = 3 And Pumpe = 2 And Melder_1 = 0 And Melder_2 = 0 And Melder_3 = 0 Then
   Led_2 = 1
End If

If Menuepunkt = 3 And Pumpe = 1 Then
   Led_2 = 0
End If

If Melder_2 = 1 And Melder_3 = 1 And Melder_4 = 1 Then
   Led_2 = 0
   End If

If Alarm = 2 And Melder_1 = 0 Then
   Led_3 = 1
   Start Timer0
   Else
   Led_3 = 0
   Stop Timer0
End If






Loop
End


Menuepunkt:

   If Beleuchtung = 3 Then
      Timer1 = 0
      Lcdbeleuchtung = 1
      Start Timer1
   End If


   Incr Menuepunkt
   If Menuepunkt > 6 Then Menuepunkt = 1
   Select Case Menuepunkt
      Case 1:
         Cls
         Locate 1 , 1
         Lcd "Wasserstand:    "

      Case 2:
        Cls
         Locate 1 , 1
         Lcd "Batteriezustand:"

      Case 3:
         Cls
         Locate 1 , 1
         Lcd "Pumpe:          "

      Case 4:
         Cls
         Locate 1 , 1
         Lcd "Alarm:          "

      Case 5:
         Cls
         Locate 1 , 1
         Lcd "Automatik:      "

      Case 6:
         Cls
         Locate 1 , 1
         Lcd "LCD-Beleuchtung:"

   End Select

   Gosub Anzeigen
Return



Umstellen:

   If Beleuchtung = 3 Then
      Timer1 = 0
      Lcdbeleuchtung = 1
      Start Timer1
   End If

   Select Case Menuepunkt
      Case 3
         Incr Pumpe
         If Pumpe > 2 Then Pumpe = 1
      Case 4
         Incr Alarm
         If Alarm > 2 Then Alarm = 1
      Case 5
         Incr Automatik
         If Automatik > 2 Then Automatik = 1
      Case 6
         Incr Beleuchtung
         If Beleuchtung > 3 Then Beleuchtung = 1
   End Select

   Gosub Anzeigen

Return

Anzeigen:

If Pumpe = 1 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Pumpe = 2 And Menuepunkt = 3 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If



If Alarm = 1 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Alarm = 2 And Menuepunkt = 4 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Automatik = 1 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd "[Aus] /  Ein    "
End If

If Automatik = 2 And Menuepunkt = 5 Then
   Locate 2 , 1
   Lcd " Aus  / [Ein]   "
End If


If Beleuchtung = 1 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "[Aus]/Ein/Auto  "
   Lcdbeleuchtung = 0
End If

If Beleuchtung = 2 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/[Ein]/Auto  "
   Lcdbeleuchtung = 1
End If

If Beleuchtung = 3 And Menuepunkt = 6 Then
   Locate 2 , 1
   Lcd "Aus/Ein/[Auto]  "
   Timer1 = 0
   Lcdbeleuchtung = 1
   Start Timer1
End If

Return

Beleuchtung_aus:
Stop Timer1
Lcdbeleuchtung = 0
Return

Signal:
Lautsprecher = Not Lautsprecher
Return




B:
   Toggle Led_1
   Waitms 500
   Toggle Led_1
   Waitms 500
   Return

C:
   Cls
   Locate 1 , 1
   Lcd "Wasserstand:    "
   Locate 2 , 1
   Lcd "- 25cm          "
   Return

D:
   Cls
   Locate 1 , 1
   Lcd "Wasserstand:    "
   Locate 2 , 1
   Lcd "- 12,5cm        "
   Return

E:
   Cls
   Locate 1 , 1
   Lcd "Wasserstand:    "
   Locate 2 , 1
   Lcd "0cm             "
   Return

F:
   Cls
   Locate 1 , 1
   Lcd "Wasserstand:    "
   Locate 2 , 1
   Lcd "+ 5cm           "
   Return


Nun fehlt nur noch die Spannungsüberwachung. Ich habe mal versucht folgenden Code mit rein zunehmen, allerdings aktualisiert sich das Display so oft, das man kaum was lesen kann.

Code:
If Menuepunkt = 2 And Messergebnis < 829 Then
   Gosub Batleer
End If

If Menuepunkt = 2 And Messergebnis >= 829 And Messergebnis < 840 Then
   Gosub Bat5
End If
If Menuepunkt = 2 And Messergebnis >= 840 And Messergebnis < 850 Then
   Gosub Bat10
End If
If Menuepunkt = 2 And Messergebnis >= 850 And Messergebnis < 860 Then
   Gosub Bat15
End If
If Menuepunkt = 2 And Messergebnis >= 860 And Messergebnis < 870 Then
   Gosub Bat20
End If
If Menuepunkt = 2 And Messergebnis >= 870 And Messergebnis < 881 Then
   Gosub Bat25
End If
If Menuepunkt = 2 And Messergebnis >= 881 And Messergebnis < 891 Then
   Gosub Bat30
End If
If Menuepunkt = 2 And Messergebnis >= 891 And Messergebnis < 901 Then
   Gosub Bat35
End If
If Menuepunkt = 2 And Messergebnis >= 901 And Messergebnis < 911 Then
   Gosub Bat40
End If
If Menuepunkt = 2 And Messergebnis >= 911 And Messergebnis < 922 Then
   Gosub Bat45
End If
If Menuepunkt = 2 And Messergebnis >= 922 And Messergebnis < 932 Then
   Gosub Bat50
End If
If Menuepunkt = 2 And Messergebnis >= 932 And Messergebnis < 942 Then
   Gosub Bat55
End If
If Menuepunkt = 2 And Messergebnis >= 942 And Messergebnis < 952 Then
   Gosub Bat60
End If
If Menuepunkt = 2 And Messergebnis >= 952 And Messergebnis < 963 Then
   Gosub Bat65
End If
If Menuepunkt = 2 And Messergebnis >= 963 And Messergebnis < 973 Then
   Gosub Bat70
End If
If Menuepunkt = 2 And Messergebnis >= 973 And Messergebnis < 983 Then
   Gosub Bat75
End If
If Menuepunkt = 2 And Messergebnis >= 983 And Messergebnis < 993 Then
   Gosub Bat80
End If
If Menuepunkt = 2 And Messergebnis >= 993 And Messergebnis < 1004 Then
   Gosub Bat85
End If
If Menuepunkt = 2 And Messergebnis >= 1004 And Messergebnis < 1014 Then
   Gosub Bat90
End If
If Menuepunkt = 2 And Messergebnis >= 1014 And Messergebnis < 1023 Then
   Gosub Bat95
End If
If Menuepunkt = 2 And Messergebnis = 1023 Then
   Gosub Bat100
End If


Batleer:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "leer     <4 Volt"
Return

Bat5:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "5%     4,05 Volt"
Return

Bat10:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "10%    4,10 Volt"
Return

Bat15:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "15%    4,15 Volt"
Return

Bat20:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "20%    4,20 Volt"
Return

Bat25:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "25%    4,25 Volt"
Return

Bat30:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "30%    4,30 Volt"
Return

Bat35:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "35%    4,35 Volt"
Return

Bat40:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "40%    4,40 Volt"
Return

Bat45:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "45%    4,45 Volt"
Return

Bat50:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "50%    4,50 Volt"
Return

Bat55:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "55%    4,55 Volt"
Return

Bat60:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "60%    4,60 Volt"
Return

Bat65:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "65%    4,65 Volt"
Return

Bat70:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "70%    4,70 Volt"
Return

Bat75:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "75%    4,75 Volt"
Return

Bat80:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "80%    4,80 Volt"
Return

Bat85:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "85%    4,85 Volt"
Return

Bat90:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "90%    4,90 Volt"
Return

Bat95:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "95%    4,95 Volt"
Return

Bat100:
Cls
Locate 1 , 1
Lcd "Batteriezustand:"
Locate 2 , 1
Lcd "100%   5,00 Volt"
Return

Wo könnte ich also diesen teil des Programms hinpacken? Gibt es noch eine bessere Lösung als meine?

LG Felix

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



Anmeldungsdatum: 27.05.2007
Beiträge: 25
Wohnort: Ö - B

BeitragVerfasst am: Do 18.Nov 2010 18:16:32    Titel: Bauteile finden Antworten mit Zitat

Hallo!

Ganz einfach: Nur aufs Display schreiben wenn der Wert sich geändert hat,
und nicht andauernd.

MfG
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
modellfreund



Anmeldungsdatum: 01.03.2008
Beiträge: 410
Wohnort: Aken

BeitragVerfasst am: Do 18.Nov 2010 18:37:18    Titel: Bauteile finden Antworten mit Zitat

Und wie funktioniert das?
_________________
www.lang-gartenbahn.de
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Anzeige






Verfasst am: Heute 20:52:15    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  Weiter
Seite 4 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. 1220863
©opyright by Markus Vohburger 2005 All Rights reserved