CCS C Software and Maintenance Offers
FAQFAQ   FAQForum Help   FAQOfficial CCS Support   SearchSearch  RegisterRegister 

ProfileProfile   Log in to check your private messagesLog in to check your private messages   Log inLog in 

CCS does not monitor this forum on a regular basis.

Please do not post bug reports on this forum. Send them to CCS Technical Support

PIC 18F4550 AND TFT 1,8''

 
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion
View previous topic :: View next topic  
Author Message
ponpat



Joined: 18 Nov 2015
Posts: 1

View user's profile Send private message

PIC 18F4550 AND TFT 1,8''
PostPosted: Wed Nov 18, 2015 9:05 pm     Reply with quote

Hello, everyone, I have a problem, TFT inactive, help me!!!
Code:
‪#‎include‬ <18f4550.h>
//‪#‎device‬ *=16
#device PASS_STRINGS = IN_RAM
‪#‎FUSES‬ NOWDT //No Watch Dog Timer
#FUSES HSPLL, PLL5, CPUDIV1
#FUSES NOPROTECT //Code not protected from reading
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOPUT //No power Up Timer
#FUSES NODEBUG //No Debug mode for ICD
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
#FUSES NOWRT //Program memory not write protected
#FUSES MCLR //Master clear reset
#FUSES CCP2C1 //Su dung rc1 lam cong OUT PWM
‪#‎use‬ delay(clock=48000000) //Thach anh gan tren board la 20MHz
//#include <string.h>
//#include <stdio.h>
//#include <stdlib.h>
#include <math.h>

‪#‎byte‬ PORTD=0XF83
#byte TRISC=0XF96
#byte TRISD=0XF95
#byte SSPCON=0XFC6
#byte SSPCON2=0XFC5
#byte SSPSTAT=0XFC7
#byte SSPBUF=0XFC9
#byte PORTB=0XF81
#byte TRISB=0XF93

‪#‎define‬ V 128
#define H 160
#define ST7735_NOP 0x00
#define ST7735_SWRESET 0x01
#define ST7735_RDDID 0x04
#define ST7735_RDDST 0x09
#define ST7735_SLPIN 0x10
#define ST7735_SLPOUT 0x11
#define ST7735_PTLON 0x12
#define ST7735_NORON 0x13
#define ST7735_INVOFF 0x20
#define ST7735_INVON 0x21
#define ST7735_DISPOFF 0x28
#define ST7735_DISPON 0x29
#define ST7735_CASET 0x2A
#define ST7735_RASET 0x2B
#define ST7735_RAMWR 0x2C
#define ST7735_RAMRD 0x2E
#define ST7735_PTLAR 0x30
#define ST7735_COLMOD 0x3A
#define ST7735_MADCTL 0x36
#define ST7735_FRMCTR1 0xB1
#define ST7735_FRMCTR2 0xB2
#define ST7735_FRMCTR3 0xB3
#define ST7735_INVCTR 0xB4
#define ST7735_DISSET5 0xB6
#define ST7735_PWCTR1 0xC0
#define ST7735_PWCTR2 0xC1
#define ST7735_PWCTR3 0xC2
#define ST7735_PWCTR4 0xC3
#define ST7735_PWCTR5 0xC4
#define ST7735_VMCTR1 0xC5
#define ST7735_RDID1 0xDA
#define ST7735_RDID2 0xDB
#define ST7735_RDID3 0xDC
#define ST7735_RDID4 0xDD
#define ST7735_PWCTR6 0xFC
#define ST7735_GMCTRP1 0xE0
#define ST7735_GMCTRN1 0xE1

// Color definitions
#define BLACK 0x0000
#define BLUE 0x001F
#define RED 0xF800
#define GREEN 0x0700
#define CYAN 0x07FF
#define MAGENTA 0xF81F
#define YELLOW 0xFFE0
#define WHITE 0xFFFF

#define CS 0b00000001 //Low = select, High = deselect.
#define RE 0b00000010 //High = normal, Low = reset.
#define A0 0b00000100 //Low = Command, High = Data.

const char font[255][5] = {
{0x00, 0x00, 0x00, 0x00, 0x00},
{0x3E, 0x5B, 0x4F, 0x5B, 0x3E},
{0x3E, 0x6B, 0x4F, 0x6B, 0x3E},
{0x1C, 0x3E, 0x7C, 0x3E, 0x1C},
{0x18, 0x3C, 0x7E, 0x3C, 0x18},
{0x1C, 0x57, 0x7D, 0x57, 0x1C},
{0x1C, 0x5E, 0x7F, 0x5E, 0x1C},
{0x00, 0x18, 0x3C, 0x18, 0x00},
{0xFF, 0xE7, 0xC3, 0xE7, 0xFF},
{0x00, 0x18, 0x24, 0x18, 0x00},
{0xFF, 0xE7, 0xDB, 0xE7, 0xFF},
{0x30, 0x48, 0x3A, 0x06, 0x0E},
{0x26, 0x29, 0x79, 0x29, 0x26},
{0x40, 0x7F, 0x05, 0x05, 0x07},
{0x40, 0x7F, 0x05, 0x25, 0x3F},
{0x5A, 0x3C, 0xE7, 0x3C, 0x5A},
{0x7F, 0x3E, 0x1C, 0x1C, 0x08},
{0x08, 0x1C, 0x1C, 0x3E, 0x7F},
{0x14, 0x22, 0x7F, 0x22, 0x14},
{0x5F, 0x5F, 0x00, 0x5F, 0x5F},
{0x06, 0x09, 0x7F, 0x01, 0x7F},
{0x00, 0x66, 0x89, 0x95, 0x6A},
{0x60, 0x60, 0x60, 0x60, 0x60},
{0x94, 0xA2, 0xFF, 0xA2, 0x94},
{0x08, 0x04, 0x7E, 0x04, 0x08},
{0x10, 0x20, 0x7E, 0x20, 0x10},
{0x08, 0x08, 0x2A, 0x1C, 0x08},
{0x08, 0x1C, 0x2A, 0x08, 0x08},
{0x1E, 0x10, 0x10, 0x10, 0x10},
{0x0C, 0x1E, 0x0C, 0x1E, 0x0C},
{0x30, 0x38, 0x3E, 0x38, 0x30},
{0x06, 0x0E, 0x3E, 0x0E, 0x06},
{0x00, 0x00, 0x00, 0x00, 0x00},
{0x00, 0x00, 0x5F, 0x00, 0x00},
{0x00, 0x07, 0x00, 0x07, 0x00},
{0x14, 0x7F, 0x14, 0x7F, 0x14},
{0x24, 0x2A, 0x7F, 0x2A, 0x12},
{0x23, 0x13, 0x08, 0x64, 0x62},
{0x36, 0x49, 0x56, 0x20, 0x50},
{0x00, 0x08, 0x07, 0x03, 0x00},
{0x00, 0x1C, 0x22, 0x41, 0x00},
{0x00, 0x41, 0x22, 0x1C, 0x00},
{0x2A, 0x1C, 0x7F, 0x1C, 0x2A},
{0x08, 0x08, 0x3E, 0x08, 0x08},
{0x00, 0x80, 0x70, 0x30, 0x00},
{0x08, 0x08, 0x08, 0x08, 0x08},
{0x00, 0x00, 0x60, 0x60, 0x00},
{0x20, 0x10, 0x08, 0x04, 0x02},
{0x3E, 0x51, 0x49, 0x45, 0x3E},
{0x00, 0x42, 0x7F, 0x40, 0x00},
{0x72, 0x49, 0x49, 0x49, 0x46},
{0x21, 0x41, 0x49, 0x4D, 0x33},
{0x18, 0x14, 0x12, 0x7F, 0x10},
{0x27, 0x45, 0x45, 0x45, 0x39},
{0x3C, 0x4A, 0x49, 0x49, 0x31},
{0x41, 0x21, 0x11, 0x09, 0x07},
{0x36, 0x49, 0x49, 0x49, 0x36},
{0x46, 0x49, 0x49, 0x29, 0x1E},
{0x00, 0x00, 0x14, 0x00, 0x00},
{0x00, 0x40, 0x34, 0x00, 0x00},
{0x00, 0x08, 0x14, 0x22, 0x41},
{0x14, 0x14, 0x14, 0x14, 0x14},
{0x00, 0x41, 0x22, 0x14, 0x08},
{0x02, 0x01, 0x59, 0x09, 0x06},
{0x3E, 0x41, 0x5D, 0x59, 0x4E},
{0x7C, 0x12, 0x11, 0x12, 0x7C},
{0x7F, 0x49, 0x49, 0x49, 0x36},
{0x3E, 0x41, 0x41, 0x41, 0x22},
{0x7F, 0x41, 0x41, 0x41, 0x3E},
{0x7F, 0x49, 0x49, 0x49, 0x41},
{0x7F, 0x09, 0x09, 0x09, 0x01},
{0x3E, 0x41, 0x41, 0x51, 0x73},
{0x7F, 0x08, 0x08, 0x08, 0x7F},
{0x00, 0x41, 0x7F, 0x41, 0x00},
{0x20, 0x40, 0x41, 0x3F, 0x01},
{0x7F, 0x08, 0x14, 0x22, 0x41},
{0x7F, 0x40, 0x40, 0x40, 0x40},
{0x7F, 0x02, 0x1C, 0x02, 0x7F},
{0x7F, 0x04, 0x08, 0x10, 0x7F},
{0x3E, 0x41, 0x41, 0x41, 0x3E},
{0x7F, 0x09, 0x09, 0x09, 0x06},
{0x3E, 0x41, 0x51, 0x21, 0x5E},
{0x7F, 0x09, 0x19, 0x29, 0x46},
{0x26, 0x49, 0x49, 0x49, 0x32},
{0x03, 0x01, 0x7F, 0x01, 0x03},
{0x3F, 0x40, 0x40, 0x40, 0x3F},
{0x1F, 0x20, 0x40, 0x20, 0x1F},
{0x3F, 0x40, 0x38, 0x40, 0x3F},
{0x63, 0x14, 0x08, 0x14, 0x63},
{0x03, 0x04, 0x78, 0x04, 0x03},
{0x61, 0x59, 0x49, 0x4D, 0x43},
{0x00, 0x7F, 0x41, 0x41, 0x41},
{0x02, 0x04, 0x08, 0x10, 0x20},
{0x00, 0x41, 0x41, 0x41, 0x7F},
{0x04, 0x02, 0x01, 0x02, 0x04},
{0x40, 0x40, 0x40, 0x40, 0x40},
{0x00, 0x03, 0x07, 0x08, 0x00},
{0x20, 0x54, 0x54, 0x78, 0x40},
{0x7F, 0x28, 0x44, 0x44, 0x38},
{0x38, 0x44, 0x44, 0x44, 0x28},
{0x38, 0x44, 0x44, 0x28, 0x7F},
{0x38, 0x54, 0x54, 0x54, 0x18},
{0x00, 0x08, 0x7E, 0x09, 0x02},
{0x18, 0xA4, 0xA4, 0x9C, 0x78},
{0x7F, 0x08, 0x04, 0x04, 0x78},
{0x00, 0x44, 0x7D, 0x40, 0x00},
{0x20, 0x40, 0x40, 0x3D, 0x00},
{0x7F, 0x10, 0x28, 0x44, 0x00},
{0x00, 0x41, 0x7F, 0x40, 0x00},
{0x7C, 0x04, 0x78, 0x04, 0x78},
{0x7C, 0x08, 0x04, 0x04, 0x78},
{0x38, 0x44, 0x44, 0x44, 0x38},
{0xFC, 0x18, 0x24, 0x24, 0x18},
{0x18, 0x24, 0x24, 0x18, 0xFC},
{0x7C, 0x08, 0x04, 0x04, 0x08},
{0x48, 0x54, 0x54, 0x54, 0x24},
{0x04, 0x04, 0x3F, 0x44, 0x24},
{0x3C, 0x40, 0x40, 0x20, 0x7C},
{0x1C, 0x20, 0x40, 0x20, 0x1C},
{0x3C, 0x40, 0x30, 0x40, 0x3C},
{0x44, 0x28, 0x10, 0x28, 0x44},
{0x4C, 0x90, 0x90, 0x90, 0x7C},
{0x44, 0x64, 0x54, 0x4C, 0x44},
{0x00, 0x08, 0x36, 0x41, 0x00},
{0x00, 0x00, 0x77, 0x00, 0x00},
{0x00, 0x41, 0x36, 0x08, 0x00},
{0x02, 0x01, 0x02, 0x04, 0x02},
{0x3C, 0x26, 0x23, 0x26, 0x3C},
{0x1E, 0xA1, 0xA1, 0x61, 0x12},
{0x3A, 0x40, 0x40, 0x20, 0x7A},
{0x38, 0x54, 0x54, 0x55, 0x59},
{0x21, 0x55, 0x55, 0x79, 0x41},
{0x21, 0x54, 0x54, 0x78, 0x41},
{0x21, 0x55, 0x54, 0x78, 0x40},
{0x20, 0x54, 0x55, 0x79, 0x40},
{0x0C, 0x1E, 0x52, 0x72, 0x12},
{0x39, 0x55, 0x55, 0x55, 0x59},
{0x39, 0x54, 0x54, 0x54, 0x59},
{0x39, 0x55, 0x54, 0x54, 0x58},
{0x00, 0x00, 0x45, 0x7C, 0x41},
{0x00, 0x02, 0x45, 0x7D, 0x42},
{0x00, 0x01, 0x45, 0x7C, 0x40},
{0xF0, 0x29, 0x24, 0x29, 0xF0},
{0xF0, 0x28, 0x25, 0x28, 0xF0},
{0x7C, 0x54, 0x55, 0x45, 0x00},
{0x20, 0x54, 0x54, 0x7C, 0x54},
{0x7C, 0x0A, 0x09, 0x7F, 0x49},
{0x32, 0x49, 0x49, 0x49, 0x32},
{0x32, 0x48, 0x48, 0x48, 0x32},
{0x32, 0x4A, 0x48, 0x48, 0x30},
{0x3A, 0x41, 0x41, 0x21, 0x7A},
{0x3A, 0x42, 0x40, 0x20, 0x78},
{0x00, 0x9D, 0xA0, 0xA0, 0x7D},
{0x39, 0x44, 0x44, 0x44, 0x39},
{0x3D, 0x40, 0x40, 0x40, 0x3D},
{0x3C, 0x24, 0xFF, 0x24, 0x24},
{0x48, 0x7E, 0x49, 0x43, 0x66},
{0x2B, 0x2F, 0xFC, 0x2F, 0x2B},
{0xFF, 0x09, 0x29, 0xF6, 0x20},
{0xC0, 0x88, 0x7E, 0x09, 0x03},
{0x20, 0x54, 0x54, 0x79, 0x41},
{0x00, 0x00, 0x44, 0x7D, 0x41},
{0x30, 0x48, 0x48, 0x4A, 0x32},
{0x38, 0x40, 0x40, 0x22, 0x7A},
{0x00, 0x7A, 0x0A, 0x0A, 0x72},
{0x7D, 0x0D, 0x19, 0x31, 0x7D},
{0x26, 0x29, 0x29, 0x2F, 0x28},
{0x26, 0x29, 0x29, 0x29, 0x26},
{0x30, 0x48, 0x4D, 0x40, 0x20},
{0x38, 0x08, 0x08, 0x08, 0x08},
{0x08, 0x08, 0x08, 0x08, 0x38},
{0x2F, 0x10, 0xC8, 0xAC, 0xBA},
{0x2F, 0x10, 0x28, 0x34, 0xFA},
{0x00, 0x00, 0x7B, 0x00, 0x00},
{0x08, 0x14, 0x2A, 0x14, 0x22},
{0x22, 0x14, 0x2A, 0x14, 0x08},
{0xAA, 0x00, 0x55, 0x00, 0xAA},
{0xAA, 0x55, 0xAA, 0x55, 0xAA},
{0x00, 0x00, 0x00, 0xFF, 0x00},
{0x10, 0x10, 0x10, 0xFF, 0x00},
{0x14, 0x14, 0x14, 0xFF, 0x00},
{0x10, 0x10, 0xFF, 0x00, 0xFF},
{0x10, 0x10, 0xF0, 0x10, 0xF0},
{0x14, 0x14, 0x14, 0xFC, 0x00},
{0x14, 0x14, 0xF7, 0x00, 0xFF},
{0x00, 0x00, 0xFF, 0x00, 0xFF},
{0x14, 0x14, 0xF4, 0x04, 0xFC},
{0x14, 0x14, 0x17, 0x10, 0x1F},
{0x10, 0x10, 0x1F, 0x10, 0x1F},
{0x14, 0x14, 0x14, 0x1F, 0x00},
{0x10, 0x10, 0x10, 0xF0, 0x00},
{0x00, 0x00, 0x00, 0x1F, 0x10},
{0x10, 0x10, 0x10, 0x1F, 0x10},
{0x10, 0x10, 0x10, 0xF0, 0x10},
{0x00, 0x00, 0x00, 0xFF, 0x10},
{0x10, 0x10, 0x10, 0x10, 0x10},
{0x10, 0x10, 0x10, 0xFF, 0x10},
{0x00, 0x00, 0x00, 0xFF, 0x14},
{0x00, 0x00, 0xFF, 0x00, 0xFF},
{0x00, 0x00, 0x1F, 0x10, 0x17},
{0x00, 0x00, 0xFC, 0x04, 0xF4},
{0x14, 0x14, 0x17, 0x10, 0x17},
{0x14, 0x14, 0xF4, 0x04, 0xF4},
{0x00, 0x00, 0xFF, 0x00, 0xF7},
{0x14, 0x14, 0x14, 0x14, 0x14},
{0x14, 0x14, 0xF7, 0x00, 0xF7},
{0x14, 0x14, 0x14, 0x17, 0x14},
{0x10, 0x10, 0x1F, 0x10, 0x1F},
{0x14, 0x14, 0x14, 0xF4, 0x14},
{0x10, 0x10, 0xF0, 0x10, 0xF0},
{0x00, 0x00, 0x1F, 0x10, 0x1F},
{0x00, 0x00, 0x00, 0x1F, 0x14},
{0x00, 0x00, 0x00, 0xFC, 0x14},
{0x00, 0x00, 0xF0, 0x10, 0xF0},
{0x10, 0x10, 0xFF, 0x10, 0xFF},
{0x14, 0x14, 0x14, 0xFF, 0x14},
{0x10, 0x10, 0x10, 0x1F, 0x00},
{0x00, 0x00, 0x00, 0xF0, 0x10},
{0xFF, 0xFF, 0xFF, 0xFF, 0xFF},
{0xF0, 0xF0, 0xF0, 0xF0, 0xF0},
{0xFF, 0xFF, 0xFF, 0x00, 0x00},
{0x00, 0x00, 0x00, 0xFF, 0xFF},
{0x0F, 0x0F, 0x0F, 0x0F, 0x0F},
{0x38, 0x44, 0x44, 0x38, 0x44},
{0x7C, 0x2A, 0x2A, 0x3E, 0x14},
{0x7E, 0x02, 0x02, 0x06, 0x06},
{0x02, 0x7E, 0x02, 0x7E, 0x02},
{0x63, 0x55, 0x49, 0x41, 0x63},
{0x38, 0x44, 0x44, 0x3C, 0x04},
{0x40, 0x7E, 0x20, 0x1E, 0x20},
{0x06, 0x02, 0x7E, 0x02, 0x02},
{0x99, 0xA5, 0xE7, 0xA5, 0x99},
{0x1C, 0x2A, 0x49, 0x2A, 0x1C},
{0x4C, 0x72, 0x01, 0x72, 0x4C},
{0x30, 0x4A, 0x4D, 0x4D, 0x30},
{0x30, 0x48, 0x78, 0x48, 0x30},
{0xBC, 0x62, 0x5A, 0x46, 0x3D},
{0x3E, 0x49, 0x49, 0x49, 0x00},
{0x7E, 0x01, 0x01, 0x01, 0x7E},
{0x2A, 0x2A, 0x2A, 0x2A, 0x2A},
{0x44, 0x44, 0x5F, 0x44, 0x44},
{0x40, 0x51, 0x4A, 0x44, 0x40},
{0x40, 0x44, 0x4A, 0x51, 0x40},
{0x00, 0x00, 0xFF, 0x01, 0x03},
{0xE0, 0x80, 0xFF, 0x00, 0x00},
{0x08, 0x08, 0x6B, 0x6B, 0x08},
{0x36, 0x12, 0x36, 0x24, 0x36},
{0x06, 0x0F, 0x09, 0x0F, 0x06},
{0x00, 0x00, 0x18, 0x18, 0x00},
{0x00, 0x00, 0x10, 0x10, 0x00},
{0x30, 0x40, 0xFF, 0x01, 0x01},
{0x00, 0x1F, 0x01, 0x01, 0x1E},
{0x00, 0x19, 0x1D, 0x17, 0x12},
{0x00, 0x3C, 0x3C, 0x3C, 0x3C},
{0x00, 0x00, 0x00, 0x00, 0x00}
};

int32 de=0,max=0,dem=0,s[15],sl[15]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
int16 count=0;
int8 flag=0;

void delay(int x){
int j;
for(j=0;j<x;j++);
}

void sendcomand(char input){
int j;
PORTD &= ~A0;
PORTD &= ~CS;
SSPBUF = input;
for(j=0;j<1;j++);
PORTD |= CS;
}

void senddata(char input){
int j;
PORTD |= A0;
PORTD &= ~CS;
SSPBUF = input;
for(j=0;j<1;j++);
PORTD |= CS;
}

void SetPix(char x, char y, int color){
char Low = color & 0x00ff;
color >>= 8;
char Hig = color;
sendcomand(ST7735_CASET); // Column addr set
senddata(0x00);
senddata(x); // XSTART
senddata(0x00);
senddata(x+1); // XEND
sendcomand(ST7735_RASET); // Row addr set
senddata(0x00);
senddata(y); // YSTART
senddata(0x00);
senddata(y+1); // YEND
sendcomand(ST7735_RAMWR);
senddata(Low);
senddata(Hig);
}

void clean(int color){
char Low = color & 0x00ff;
color >>= 8;
char Hig = color;
sendcomand(ST7735_CASET); // Column addr set
senddata(0x00);
senddata(0); // XSTART
senddata(0x00);
senddata(V); // XEND
sendcomand(ST7735_RASET); // Row addr set
senddata(0x00);
senddata(0); // YSTART
senddata(0x00);
senddata(H); // YEND
sendcomand(ST7735_RAMWR);
char x,y;
for(x=0;x<V;x++){
for(y=0;y<H;y++){
senddata(Low);
senddata(Hig);
    }
  }
}

void init(){
PORTD &= ~CS;
delay(0);
PORTD |= RE;
delay(100);
PORTD &= ~RE;
delay(100);
PORTD |= RE;
delay(10000);
sendcomand(ST7735_SWRESET); // 1: Software reset, 0 args, w/delay 150ms 0x01
delay(1000);
sendcomand(ST7735_SLPOUT); // 2: Out of sleep mode, 0 args, w/delay 500ms 0x11
delay(10000);
sendcomand(ST7735_FRMCTR1); // 3: Frame rate ctrl - normal mode) 3 args: 0xb1
senddata(0x01); senddata(0x2C); senddata(0x2D); // Rate = fosc/(1x2+40) * (LINE+2C+2D)
sendcomand(ST7735_FRMCTR2); // 4: Frame rate control - idle mode) 3 args: 0xb2
senddata(0x01); senddata(0x2C); senddata(0x2D); // Rate = fosc/(1x2+40) * (LINE+2C+2D)
sendcomand(ST7735_FRMCTR3); // 5: Frame rate ctrl - partial mode) 6 args: 0xb3
senddata(0x01); senddata(0x2C); senddata(0x2D); // Dot inversion mode
senddata(0x01); senddata(0x2C); senddata(0x2D); // Line inversion mode
sendcomand(ST7735_INVCTR); // 6: Display inversion ctrl) 1 arg) no delay: 0xb4
senddata(0x07); // No inversion
sendcomand(ST7735_PWCTR1); // 7: Power control) 3 args) no delay: 0xc0
senddata(0xA2);
senddata(0x02); // -4.6V
senddata(0x84); // AUTO mode
sendcomand(ST7735_PWCTR2); // 8: Power control) 1 arg) no delay: 0xc1
senddata(0xC5); // VGH25 = 2.4C VGSEL = -10 VGH = 3 * AVDD
sendcomand(ST7735_PWCTR3); // 9: Power control) 2 args) no delay: 0xc2
senddata(0x0A); // Opamp current small
senddata(0x00); // Boost frequency
sendcomand(ST7735_PWCTR4); // 10: Power control) 2 args) no delay:
senddata(0x8A); // BCLK/2) Opamp current small & Medium low
senddata(0x2A);
sendcomand(ST7735_PWCTR5); // 11: Power control) 2 args) no delay:
senddata(0x8A); senddata(0xEE);
sendcomand(ST7735_VMCTR1); // 12: Power control) 1 arg) no delay:
senddata(0x0E);
sendcomand(ST7735_INVOFF); // 13: Don't invert display) no args) no delay 0x20
sendcomand(ST7735_MADCTL); // 14: Memory access control (directions)) 1 arg:
senddata(0xC8); // row addr/col addr); bottom to top refresh
sendcomand(ST7735_COLMOD); // 15: set color mode); 1 arg); no delay:
senddata(0x05); // 16-bit color
sendcomand(ST7735_NORON); // 3: Normal display on, no args, w/delay 10ms 0x13
delay(100);
sendcomand(ST7735_DISPON); // 4: Main screen turn on, no args w/delay 100ms 0x29
delay(1000);
}

void ASCII(char x, char y, int color, int background, char letter, char size){
char data,q,z,d,b;
for(q=0;q<5;q++){
data = font[letter][q];
for(z=0;z<8*size;z++){
if((data&1)!=0){
for(d=0; d<size;d++){
for(b=0; b<size;b++){
SetPix(x+(q*size)+d,y+(z*size)+b,color);
}
}
}else{
for(d=0;d<size;d++){
for(b=0;b<size;b++){
SetPix(x+(q*size)+d,y+(z*size)+b,background);
}
}
}
data>>=1;
}
}
}

void prints(char x, char y, int color, int background,char *message, char size){
int j=0;
while(*message){
ASCII(x,y,color,background,*message++, size);
x+=6*size;
if(x>120){
x=0;
y+=8*size;
}
j++;
}
}

void integerprint(char x, char y, int color, int background,int32 integer, char size){
int32 hundredthousands,tenthousands,thousands,hundreds,tens,ones;
hundredthousands=(int32)(integer/100000);
ASCII(x,y,color,background,hundredthousands+48, size);
x+=6;
tenthousands = (int32)(((integer - hundredthousands*100000)) / 10000);
ASCII(x,y,color,background,tenthousands+48, size);
thousands = (int32)((((integer - hundredthousands*100000) -tenthousands*10000)) / 1000);
x+=6;
ASCII(x,y,color,background,thousands+48, size);
hundreds = (int32)(((((integer-hundredthousands*100000) - tenthousands*10000) - thousands*1000)) / 100);
x+=6;
ASCII(x,y,color,background,hundreds+48, size);
tens=(int32)((integer%100)/10);
x+=6;
ASCII(x,y,color,background,tens+48, size);
ones=(int32)integer%10;
x+=6;
ASCII(x,y,color,background,ones+48, size);
}

void box(char x, char y, char high, char breth, int color){
char s,d;
for(s = y; s < y+high; s++){
for(d = x; d < x+breth; d++){
SetPix(d,s,color);
}
}

void main() {
SSPSTAT = 0b01000000;
SSPCON = 0b00100000;
SSPCON2 = 0b00000000;
TRISB = 0b00000100;
TRISC = 0;
TRISD = 0;
//TRISB = 0XFF;
PORTD |= 0b00001000;
init();
clean(BLACK);

while(1){
integerprint(0,100,0xffff,black,123,1);
}
}
Sad
Ttelmah



Joined: 11 Mar 2010
Posts: 19482

View user's profile Send private message

PostPosted: Thu Nov 19, 2015 2:10 am     Reply with quote

Use CCS....

There are standard SPI transfer routines and setups built into the CCS compiler. Use them.

There are several problems with your current code. You are trying to directly drive the SPI, and are writing bytes to the buffer without testing that the SPI has finished the last transaction. Result will be garbage.
However the big problem is how are you interfacing this to the PIC?. Like a lot of modern chips, this is a low voltage device. The 4550's SPI interface _requires_ input signals that go up to 0.8*Vdd (so 4v, when using the PIC at 5v - Vih). You are compiling for the F4550, which has a minimum Vdd of 4.2v, so absolute minimum you can get to is inputs requiring 3.36v. The chip gives a maximum warranted output of 0.8*Vddi, with Vddi at 3.3v maximum, so 2.64v. Not enough to drive the PIC. Understand that the Arduino SPI inputs accept 2.4v as Vih. To run this chip with the PIC, you _need_ to either have hardware buffering, or use software SPI (again the CCS library can do this 'FORCE_SW'), using pins with TTL input buffers. These will accept 2v as Vih.

So I've not even started to look at your code (honestly a test program only needs a couple of characters, and there should be comments on _everything_. If code is not at least 50% comments, or uses variable names & defines that are 'self commenting', then it has not been properly written. However there is no way it is going to even start to work as shown.

There is another big problem, you are using 'int' where you should be using int16 pretty much throughout. The code has obviously been copied from a compiler that has a default integer size of int16, forgetting that CS has a default size of int8....
Display posts from previous:   
Post new topic   Reply to topic    CCS Forum Index -> General CCS C Discussion All times are GMT - 6 Hours
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum


Powered by phpBB © 2001, 2005 phpBB Group