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.) ???