Hello everyone !
I am using LCD module DM12864M with my TM4C1294 launchpad, i have written code many times to get print on LCD, but unable to understand what is wrong with code or analogy, my hardware is absolutely ok, i have searched other posts for this problem but could not find my answer yet, please help me to know , i have google it but could not find solution, please help me to sort out.
here is my code
#include <stdint.h>
#include "inc/tm4c1294ncpdt.h"
#include <stdbool.h>
#include "driverlib/sysctl.h"
#include "driverlib/gpio.h"
#include"inc/hw_types.h"
#include"inc/hw_memmap.h"
#include"driverlib/timer.h"
#include"driverlib/interrupt.h"
#include"driverlib/systick.h"
#include "driverlib/rom.h"
#include "driverlib/rom_map.h"
//*****************************************************************************
void delay(uint32_t num);
volatile unsigned long long int clock,period;
int
main(void)
{
//Clock Set
clock=SysCtlClockFreqSet((SYSCTL_XTAL_25MHZ |SYSCTL_OSC_MAIN | SYSCTL_USE_PLL |SYSCTL_CFG_VCO_480), 120000000);
//Port Initialization-Used many ports, beacuse few pins left, i have not left any free
//conscutive pins to connect with lcd, rest of all pins connected with sensors and other devices
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
SysCtlPeripheralEnable(SYSCTL_PERIPH_TIMER0);
GPIOPinTypeGPIOOutput(GPIO_PORTN_BASE,GPIO_PIN_0);
period=clock;
//Port Initialization-Used many ports, beacuse few pins left, i have not left any free
//conscutive pins to connect witJh lcd, rest of all pins connected with sensors and other devices
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOA);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOH);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOM);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOE);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOB);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOK);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPION);
SysCtlPeripheralEnable(SYSCTL_PERIPH_GPIOL);
//DATA-SIGNALS
GPIOPinTypeGPIOOutput(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4
|GPIO_PIN_3|GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0);//DB0-DB7
//CONTROL-SIGNALS RS, R/W AND EN
GPIOPinTypeGPIOOutput(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0);//RS0,R/W1,EN2,RST3,PSB4
while(1){
////////////////////////11111111111111///////////////////////////////////////////////////////////////////////
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x14);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x30);//DB0-DB7
delay(12000000);
//EN-LOW
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x10);//RS,R/W,EN,RST,PSB
/////////////////////////2222222////////////////////////////////////////////////////////////////////
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x14);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x0C);//DB0-DB7
delay(12000000);
//EN-LOW
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x10);//RS,R/W,EN,RST,PSB
/////////////////////////333333////////////////////////////////////////////////////////////////////
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x14);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x01);//DB0-DB7
delay(12000000);
//EN-LOW
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x10);//RS,R/W,EN,RST,PSB
/////////////////////////4444////////////////////////////////////////////////////////////////////
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x14);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x02);//DB0-DB7
delay(12000000);
//EN-LOW
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x10);//RS,R/W,EN,RST,PSB
/////////////////////////555555555555555555555555////////////////////////////////////////////////////////////////////
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x14);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x06);//DB0-DB7
delay(12000000);
//EN-LOW
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x10);//RS,R/W,EN,RST,PSB
////////////////////////////888888//////////////////////////////////////////////////////////////////////
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x14);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTK_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x41);//DB0-DB7
delay(12000000);
//EN-LOW
GPIOPinWrite(GPIO_PORTL_BASE,GPIO_PIN_7|GPIO_PIN_6|GPIO_PIN_5|GPIO_PIN_4|GPIO_PIN_3|
GPIO_PIN_2|GPIO_PIN_1|GPIO_PIN_0,0x10);//RS,R/W,EN,RST,PSB
GPIOPinWrite(GPIO_PORTN_BASE,GPIO_PIN_0,1);
delay(period/2);
GPIOPinWrite(GPIO_PORTN_BASE,GPIO_PIN_0,0);
delay(period/2);
}
}
void delay(uint32_t num){
TimerIntClear(TIMER0_BASE,TIMER_TIMA_TIMEOUT);
TimerConfigure(TIMER0_BASE,TIMER_CFG_PERIODIC);
TimerLoadSet(TIMER0_BASE,TIMER_A,num-1);
// TimerIntEnable(TIMER0_BASE, TIMER_TIMA_TIMEOUT);
TimerEnable(TIMER0_BASE, TIMER_A);
while(!TimerIntStatus(TIMER0_BASE,false)){
}
}