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 

 Re: DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! Kategorie: Programmierung Basic (von gerd - 23.02.2004 18:08)
 Als Antwort auf DigitalPort 16 schaltet automatisch ab? Bitte helft mir!!! von Christian Sturm - 23.02.2004 17:32
>Hallo
Dein Problem ist ganz logisch, du verwendest byteport 2 und dieser
beinhaltet die digiports 9-16. Lies mal in der Beschreibung.

gruss gerd


' 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 -----
>
>
>
>

 Antwort schreiben

Bisherige Antworten:

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)