PicBasic, GLCD en 16F886

Alleen berichten met de trefwoorden “breadboard” worden getoond. Alle berichten tonen

JoWi

Special Member

In een project met een Samsung GLCD heb ik de 16F876A vervangen door een 16F886.
Volgens Murphy werkt het dan niet meer.

Van de 16F886 de errata-sheet en migration guide doorgespit, maar volgens mij heb ik alles wel afgevangen.

Zie het onderstaande programma, met een 876A werkt het foutloos. Met de 866 knippert het ledje vrolijk maar blijft het display blanko. Er zitten dus geen fouten in de bedrading op het breadboard.

code:

Device 16F886                           ;Device used
@CONFIG_REQ
@__CONFIG _CONFIG1, XT_OSC & WDT_OFF & PWRTE_ON & LVP_OFF & BOR_OFF & IESO_OFF

;Device 16F876A
;CONFIG XT_OSC, WDT_OFF, PWRTE_ON, LVP_OFF

XTAL = 4                                ; 20 MHz Xtal
           
Symbol  LCD_RESETPIN    PORTC.3         ; Graphic LCD resetlijn
Symbol  LED_ERRORPIN    PORTC.7         ; Error signal (led or buzzer)
                                        
Declare LCD_TYPE        SAMSUNG         ; Graphic LCD definitie
Declare LCD_DTPORT      PORTB
Declare LCD_RWPIN       PORTC.4
Declare LCD_RSPIN       PORTC.5
Declare LCD_ENPIN       PORTC.6
Declare LCD_CS1PIN      PORTC.0
Declare LCD_CS2PIN      PORTC.1
Declare INTERNAL_FONT On
Declare FONT_ADDR = 0

TRISA   = %11111111                     ; Definieer I/O lijnen
TRISB   = %00000000
TRISC   = %00000000
ANSEL   = %00000000                     ; 16F886
ANSELH  = %00000000                     ; 16F886
ADCON0  = %00000000                     ; 16F886
CM1CON0 = %00000000                     ; 16F886 
CM2CON0 = %00000000                     ; 16F886 
CM2CON1 = %00000010                     ; 16F886 

DelayMS 1000                            ; Power up delay
LCD_RESETPIN = 0                        ; Reset de display controller
DelayMS 20                              ; Pull ~RST low for 20 milliseconds
LCD_RESETPIN = 1
DelayMS 20
Cls                                     ; clear screen

Print At 0, 2, "GLCD TESTPROGRAMMA"

While 1==1
  Toggle LED_ERRORPIN                   ; Indicator for loop speed
  DelayMS 200
Wend

Include "FONT.BAS"
      
End

Er zitten wat overtollige regels in (de comparatorinstelling zijn al default na een reset, maar ik weet niet of PicBasic er zelf iets mee doet).

Mis is iets of moet ik de assembly output doorspitten (in welk geval ik net zo goed assembly had kunnen gebruiken.) ???

Ignorance is bliss