Das Open-Control-Projekt - Die Alternative zur C-Control-I


Das Forum zur C-Control-1
Welche C-Control-Varianten existieren?
Übersicht - Suchen - Neueste 50 Beiträge - Neuer Beitrag - Login - Registrieren
INFO - FAQ - CC2-Forum - CCPro-Forum 

 DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! Kategorie: Programmierung Basic (von Christian Sturm, Homepage - 23.02.2004 17:32)
' Hallo liebes Forum, ich bin hier auf ein unlösbares Problem in
' meinem sehr simpelen Programm gestoßen.

' Ich schalte Port[16] an, doch er geht nach dem Schreiben auf
' mein LCD_Display einfach aus. ????? Warum ?????

' anbei mein Source... hoffe er ist einigermaßen Übersichtlich...

' Ich wäre für ein wenig hilfe wirklich dankbar....

' LG Chris INFO@Sturmfabrik.de




' ---- cut here :) -----

'Definition LCD-Ports

       define lcd_buf byte
       define lcd_param byte
       define i byte
       define l byte
       define LCD_VARIABLE byte
       define lcd_port byteport[2]
       define lcd_rs port[14]
       define lcd_rw port[13]
       define lcd_e port[15]


'Definiton LCD-Letterset

       define A_ &H41
       define B_ &H42
       define C_ &H43
       define D_ &H44
       define E_ &H45
       define F_ &H46
       define G_ &H47
       define H_ &H48
       define I_ &H49
       define J_ &H4A
       define K_ &H4B
       define L_ &H4C
       define M_ &H4D
       define N_ &H4E
       define O_ &H4F
       define P_ &H50
       define Q_ &H51
       define R_ &H52
       define S_ &H53
       define T_ &H54
       define U_ &H55
       define V_ &H56
       define W_ &H57
       define X_ &H58
       define Y_ &H59
       define Z_ &H5A
       define NUM1_ &H31
       define NUM2_ &H32
       define NUM3_ &H33
       define NUM4_ &H34
       define NUM5_ &H35
       define NUM6_ &H36
       define NUM7_ &H37
       define NUM8_ &H38
       define NUM9_ &H39
       define LZ &H20
       define MINUS &H2D
       define NULL &H30
       define stern &H2a
       define GLEICH &H3D
       define DOPPELPUNKT &H3A


'Definition Digital-Ports

       define ausgang1 port[1]
       define ausgang2 port[2]
       define ausgang3 port[3]
       define ausgang4 port[4]
       define ausgang5 port[5]
       define ausgang6 port[6]
       define ausgang7 port[7]
       define ausgang8 port[8]
       define ausgang16 port[16]
       define analog1 ad[1]
      
      
'Das Programm ....

ausgang16=on                    ' ausgang16 anschalten (LED leuchtet)
wait (analog1=255)              ' warten das der Taster am analogport1 gedrückt wird
beep 250000,10,20               ' Kiloherzpiepen als Einschaltsound

gosub LCD_CLS                   'LCD_DISPLAY initialisieren bzw. löschen





'In erste Zeile des LCD_Display ersten 15 Zeichen schreiben

        lcd_param = 1 : gosub LCD_GOTOLINE

            for i = 0 to 14
                looktab titeltext, i, LCD_VARIABLE
                lcd_param = LCD_VARIABLE :gosub LCD_SCHREIBEN
            next





'In Zweite Zeile des LCD_Display zweiten 15 Zeichen schreiben

        lcd_param = 2 : gosub LCD_GOTOLINE

            for i = 15 to 29
                looktab titeltext, i, LCD_VARIABLE
                lcd_param = LCD_VARIABLE :gosub LCD_SCHREIBEN
            next





pause 200                       'nach dem Schreiben warten





        for i=0 to 15

                 lcd_param=1: gosub LCD_GOTOLINE 'erste Zeile des LCD Display wählen
                 gosub LCD_SHIFT_LEFT            'LCD Display Zeile nach Links schieben

                 LCD_Param=2: gosub LCD_GOTOLINE 'zweite Zeile des LCD Display wählen
                 gosub LCD_SHIFT_LEFT            'LCD Display Zeile nach Links schieben
                
         next






gosub LCD_CLS 'LCD Display löschen und zurücksetzen                  



lcd_param = 1 : gosub LCD_GOTOLINE              'erste Zeile des LCD Display wählen



'Meldung für Ausgang1 ausgeben. "AUSGANG1"

        for i = 0 to 12
            looktab aeins, i, LCD_VARIABLE
            lcd_param = LCD_VARIABLE :gosub LCD_SCHREIBEN
        next






lcd_param = 2 : gosub LCD_GOTOLINE              'zweite Zeile des LCD Display wählen






'Meldung für Ausgang1 ausgeben. "-**************-"

        for i = 0 to 15
            looktab balken, i, LCD_VARIABLE
            lcd_param = LCD_VARIABLE :gosub LCD_SCHREIBEN
        next



ausgang1=on                                     ' Digitalausgang 1 anschalten




pause 20                     'nen bisschen warten, damit Spannungsspitzen ausgeschlossen werden.




lcd_param = 1 : gosub LCD_GOTOLINE





' S.O. Schaltmeldung ausgeben.... "BETRIEBSBEREIT"
      for i = 0 to 15
        looktab schaltmeldung, i, LCD_VARIABLE
        lcd_param = LCD_VARIABLE :gosub LCD_SCHREIBEN
      next
    
    


beep 250000,10,25

pause 50

end











'LCD DISPLAY STEUERSET

#LCD_INIT
  lcd_port = OFF
  lcd_param=&H38 : gosub LCD_WRITECMD
  lcd_port=&B00000010
  tog lcd_e
  tog lcd_e
  lcd_param = &H28 : gosub LCD_WRITECMD
  lcd_param = &H0C : gosub LCD_WRITECMD

#LCD_CLS
  lcd_param = &H02 : gosub LCD_WRITECMD
  lcd_param = &H01 : gosub LCD_WRITECMD
  return

#LCD_SHIFT_RIGHT
  lcd_param = &B00011100 : gosub LCD_WRITECMD
  return

#LCD_SHIFT_LEFT
  lcd_param = &B00011000 : gosub LCD_WRITECMD
  return

#LCD_GOTOLINE
  if lcd_param = 1 then lcd_param = &H80
  if lcd_param = 2 then lcd_param = &HC0
  goto LCD_WRITECMD

#LCD_WRITECMD
  lcd_buf = OFF
  goto LCD_WRITE

#LCD_SCHREIBEN
  lcd_buf = &B00100000

#LCD_WRITE
  lcd_port = lcd_buf or (lcd_param shr 4) ' Hi-Nibble
  tog lcd_e
  tog lcd_e
  lcd_port = lcd_buf or (lcd_param and &H0F)  ' Lo-Nibble
  tog lcd_e
  tog lcd_e
  return




'MELDUNGSSET

table titeltext
NUM9_ K_ W_ lz minus lz B_ R_ O_ A_ D_ C_ A_ S_ T_ P_ O_ W_ E_ R_ C_ O_ N_ N_ E_ C_ T_ I_ O_ N_
tabend

table aeins
A_ U_ S_ G_ A_ N_ G_ NUM1_ lz NUM2_ NUM3_ NULL V_
tabend

table azwei
A_ U_ S_ G_ A_ N_ G_ NUM2_ lz NUM2_ NUM3_ NULL V_
tabend

table adrei
A_ U_ S_ G_ A_ N_ G_ NUM3_ lz NUM2_ NUM3_ NULL V_
tabend

table avier
A_ U_ S_ G_ A_ N_ G_ NUM4_ lz NUM2_ NUM3_ NULL V_
tabend

table afuenf
A_ U_ S_ G_ A_ N_ G_ NUM5_ lz NUM2_ NUM3_ NULL V_
tabend

table asechs
A_ U_ S_ G_ A_ N_ G_ NUM6_ lz NUM2_ NUM3_ NULL V_
tabend

table asieben
A_ U_ S_ G_ A_ N_ G_ NUM7_ lz NUM2_ NUM3_ NULL V_
tabend

table aacht
A_ U_ S_ G_ A_ N_ G_ NUM8_ lz NUM2_ NUM3_ NULL V_
tabend


table schaltmeldung
lz B_ E_ T_ R_ I_ E_ B_ S_ B_ E_ R_ E_ I_ T_ lz
tabend

table balken
minus lz stern stern stern stern stern stern stern stern stern stern stern stern lz minus
tabend








' ---- cut here -----





Meine Homepage: http://www.sturmfabrik.de

 Antwort schreiben

Bisherige Antworten:

100Punkte ... Vielen Dank an meine Helfer!! (von Christian Sturm - 24.02.2004 2:01)
Re: DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! (von Klaus2m5 - 23.02.2004 20:32)
Re: DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! (von gerd - 23.02.2004 18:08)
    Re: DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! (von Chistian Sturm - 23.02.2004 18:49)
        Re: DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! (von gerd - 23.02.2004 21:08)