
|
INFO - FAQ - CC2-Forum - CCPro-Forum |
|
>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 |