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)