0% found this document useful (0 votes)
19 views32 pages

ARM LCD CODES

The document contains multiple code snippets for various embedded programming tasks using the LPC21XX microcontroller. It includes implementations for LED blinking, scrolling text on an LCD, handling interrupts, and displaying numbers on 7-segment displays. Each code section is designed to demonstrate specific functionalities such as timer interrupts, vector/non-vector interrupts, and controlling multiple digits on a 7-segment display.

Uploaded by

Maathu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
19 views32 pages

ARM LCD CODES

The document contains multiple code snippets for various embedded programming tasks using the LPC21XX microcontroller. It includes implementations for LED blinking, scrolling text on an LCD, handling interrupts, and displaying numbers on 7-segment displays. Each code section is designed to demonstrate specific functionalities such as timer interrupts, vector/non-vector interrupts, and controlling multiple digits on a 7-segment display.

Uploaded by

Maathu
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 32

Code: active low led blinking

#include<LPC21XX.H>
void delay_ms(int d)
{
int i;
for(;d>0;d--)
sfor(i=12000;i>0;i--);
}
int main()
{
PINSEL0=0;
IODIR0=0xff<<17;
while(1)
{
IOCLR0=0xff<<17;
delay_ms(300);
IOSET0=0xff<<17;
delay_ms(300);
}
}

Code: scorling lcd


#include<LPC21XX.H>
#include<string.h>
#include"delayy_header.h"
#define LCD_D 0XFF
#define RS 1<<10
#define E 1<<11
void LCD_INIT(void);
void LCD_COMMAND(unsigned char);
void LCD_DATA(unsigned char);
void LCD_STR(unsigned char *);
int main()
{
int count,len,len1;
unsigned char cmd;
unsigned char *p="Happy Diwali";

LCD_INIT();
len=strlen("Happy Diwali");
while (1)
{
count=0;len1=len;
for(cmd=0x80;cmd<=0x8f;cmd++)
{
LCD_COMMAND(cmd);
LCD_STR(p);
delay_millisec(500);
LCD_COMMAND(0x01);
count++;
if(count>(16-len1))
{
LCD_COMMAND(0X80);
len1--;
LCD_STR(p+len1);
}
}
}
}
void LCD_INIT(void)
{
IODIR0=LCD_D|RS|E;
LCD_COMMAND(0X01);
LCD_COMMAND(0X02);
LCD_COMMAND(0X0C);
LCD_COMMAND(0X38);
LCD_COMMAND(0X80);
}
void LCD_COMMAND(unsigned char cmd)
{
IOCLR0=LCD_D;
IOSET0=cmd;
IOCLR0=RS;
IOSET0=E;
delay_millisec(2);
IOCLR0=E;
}
void LCD_DATA(unsigned char d)
{
IOCLR0=LCD_D;
IOSET0=d;
IOSET0=RS;
IOSET0=E;
delay_millisec(2);
IOCLR0=E;
}
void LCD_STR(unsigned char *s)
{
while(*s)
LCD_DATA(*s++);
}

code: vector board 4bit:

#include<LPC21XX.H>
#include"delayy_header.h"

#define LCD_D 0X0F<<4


#define RS 1<<1
#define E 1<<3
void LCD_INIT(void);
void LCD_DATA(unsigned char d);
void LCD_COMMAND(unsigned char cmd);
void LCD_STR(unsigned char *s);

int main()
{
LCD_INIT();
LCD_COMMAND(0X82);
LCD_STR("PUSHPA PART2");
LCD_COMMAND(0XC2);
LCD_STR("AA BHAAI ");
}

void LCD_INIT(void)
{
IODIR0=LCD_D|RS|E;
LCD_COMMAND(0X01);
LCD_COMMAND(0X02);
LCD_COMMAND(0X0C);
LCD_COMMAND(0X28);
LCD_COMMAND(0X80);
}

void LCD_COMMAND(unsigned char cmd)


{
IOCLR0=LCD_D;
IOSET0=(cmd & 0xf0)<<0;
IOCLR0=RS;
IOSET0=E;
delay_millisec(2);
IOCLR0=E;
IOCLR0=LCD_D;
IOSET0=(cmd & 0x0f)<<4;
IOCLR0=RS;
IOSET0=E;
delay_millisec(2);
IOCLR0=E;
}
void LCD_DATA(unsigned char d)
{
IOCLR0=LCD_D;
IOSET0=(d & 0xf0)<<0;
IOSET0=RS;
IOSET0=E;
delay_millisec(2);
IOCLR0=E;
IOCLR0=LCD_D;
IOSET0=(d & 0x0f)<<4;
IOSET0=RS;
IOSET0=E;
delay_millisec(2);
IOCLR0=E;
}
void LCD_STR(unsigned char *s)
{
while(*s)
LCD_DATA(*s++);
}

code: ryzo labs 4bit:

#include<LPC21XX.H>
#include"delayy_header.h"
#define LCD_D 0X0F<<20
#define RS 1<<17
#define RW 1<<18
#define E 1<<19
void LCD_INIT(void);
void LCD_DATA(unsigned char d);
void LCD_COMMAND(unsigned char cmd);
void LCD_STR(unsigned char *s);

int main()
{
LCD_INIT();
LCD_COMMAND(0X82);
LCD_STR("PUSHPA PART2");
LCD_COMMAND(0XC2);
LCD_STR("AA BHAAI ");
}

void LCD_INIT(void)
{
IODIR1=LCD_D|RS|E;
LCD_COMMAND(0X01);
LCD_COMMAND(0X02);
LCD_COMMAND(0X0C);
LCD_COMMAND(0X28);
LCD_COMMAND(0X80);
}

void LCD_COMMAND(unsigned char cmd)


{
IOCLR1=LCD_D;
IOSET1=(cmd & 0xf0)<<16;
IOCLR1=RS;
IOCLR1=RW;
IOSET1=E;
delay_millisec(2);
IOCLR1=E;
IOCLR1=LCD_D;
IOSET1=(cmd & 0x0f)<<20;
IOCLR1=RS;
IOCLR1=RW;
IOSET1=E;
delay_millisec(2);
IOCLR1=E;
}
void LCD_DATA(unsigned char d)
{
IOCLR1=LCD_D;
IOSET1=(d & 0xf0)<<16;
IOSET1=RS;
IOCLR1=RW;
IOSET1=E;
delay_millisec(2);
IOCLR1=E;
IOCLR1=LCD_D;
IOSET1=(d & 0x0f)<<20;
IOSET1=RS;
IOCLR1=RW;
IOSET1=E;
delay_millisec(2);
IOCLR1=E;
}
void LCD_STR(unsigned char *s)
{
while(*s)
LCD_DATA(*s++);
}

code: FIQ Interrupt

#include<LPC21XX.H>
#define LED0 1<<0
#define slot_en 1<<5
#define Eint0 14
void FIQ_Handler(void)__irq
{
EXTINT=0x01;
IOSET0=LED0;
IOCLR0=LED0;
VICVectAddr=0;
}

int main()
{
unsigned int count=0;
PINSEL0=0;
PINSEL1=0X1;
IODIR0=LED0;

VICIntSelect=1<<Eint0;
EXTMODE=0x00;
EXTPOLAR=0x00;
VICIntEnable=1<<Eint0;
while(1)
{
count++;
}
}

Note:
In startup.c:
line 263 ;keep as comment
extend FIQ_Handler

code: Non vector interrupt


#include<LPC21XX.H>
#define EINT0 14
#define EINT1 15
#define LED0 1<<0
#define LED1 1<<1
void ext_int_isr(void)__irq
{
if((VICIRQStatus>>14)&1)
{
EXTINT=0x01;
IOSET0=LED0;
IOCLR0=LED0;
}
if((VICIRQStatus>>15)&1)
{
EXTINT=0x02;
IOSET0=LED1;
IOCLR0=LED1;
}
VICVectAddr=0;
}
int main()
{
unsigned int count=0;
PINSEL0=1<<29;
PINSEL1=0X1;
IODIR0=LED0|LED1;

VICIntSelect=0;
VICDefVectAddr=(int)ext_int_isr;

EXTMODE=0x03;
EXTPOLAR=0x00;

VICIntEnable=1<<EINT0|1<<EINT1;
while(1)
{
count++;
}
}

code: vector interrupt

#include<LPC21XX.H>
#define LED0 1<<0
#define slot_en 1<<5
#define Eint0 14
int main()
{
unsigned int count=0;
PINSEL0=0;
PINSEL1=0X1;
IODIR0=LED0;

VICIntSelect=1<<14;
VICVectCntl0=slot_en|Eint0;
VICVectAddr0=(int)ext_int;
EXTMODE=0x00;
EXTPOLAR=0x00;
VICIntEnable=1<<Eint0;
while(1)
{
count++;
}
}

code: assissnment
using timer interrupt

#include<LPC21XX.H>
#define AH_LED 1<<16
#define AL_LED 1<<17
#define SW 14
#define slot_en 1<<5
#define timer0_int 4
int flag=0;
void timer_eint(void) __irq
{
T0IR=0x01;
if(flag==0)
{
IOSET1=AH_LED;
flag=1;
}
else
{
IOCLR1=AH_LED;
flag=0;
}
VICVectAddr=0;
}
int main()
{
IODIR0=AL_LED;
IODIR1=AH_LED;

VICIntSelect=0;
VICVectCntl0=slot_en|timer0_int;
VICVectAddr0=(int)timer_eint;
T0MR0=150000-1;
T0MCR=0x03;
VICIntEnable=1<<timer0_int;
T0TCR=0x01;

while(1)
{
if(((IOPIN0>>SW)&1)==0)
IOCLR0=AL_LED;
else
IOSET0=AL_LED;
}
}

code: 7 segment
#include<lpc21xx.h>
#define seg_d 0xff
typedef unsigned char u8;
u8 seg_lut[11]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void delay_ms(int ms)
{
T0PR=15000-1;
T0TCR=0X01;
while(T0TC<ms);
T0TCR=0X03;
T0TCR=0X00;
}
int main()
{
u8 digit=0;
PINSEL0=0;
IODIR0=seg_d;
while(digit<10)
{
IOCLR0=seg_d;
IOSET0=seg_lut[digit++];
delay_ms(900);
if(digit==10)
digit=0;
}
}

code : 7 segment 1 digit

#include<lpc21xx.h>
#define seg_d 0xff
typedef unsigned char u8;
u8 seg_lut[11]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void delay_ms(int ms)
{
T0PR=15000-1;
T0TCR=0X01;
while(T0TC<ms);
T0TCR=0X03;
T0TCR=0X00;
}
int main()
{
u8 digit=0;
PINSEL0=0;
IODIR0=seg_d;
while(digit<10)
{
IOCLR0=seg_d;
IOSET0=seg_lut[digit++];
delay_ms(900);
if(digit==10)
digit=0;
}
}

code : 7 segment 2 digit

#include<lpc21xx.h>
#define seg_d 0xff
#define seg_1 1<<8
#define seg_2 1<<9
typedef unsigned char u8;
u8 seg_lut[11]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void display_digit(unsigned int );
void delay_ms(int);

int main()
{
PINSEL0=0;
IODIR0=seg_d|seg_1|seg_2;
while(1)
{
display_digit(69);
}
}

void display_digit(unsigned int n)


{
char k;
for(k=0;k<100;k++)
{
IOCLR0=seg_d;
IOSET0=seg_lut[n/10];
IOCLR0=seg_1;
delay_ms(5);
IOSET0=seg_1;

IOCLR0=seg_d;
IOSET0=seg_lut[n%10];
IOCLR0=seg_2;
delay_ms(5);
IOSET0=seg_2;

}
}

void delay_ms(int ms)


{
T0PR=15000-1;
T0TCR=0X01;
while(T0TC<ms);
T0TCR=0X03;
T0TCR=0X00;
}

code : 7 segment 4 digit

#include<lpc21xx.h>
#define seg_d 0xff
#define seg_1 1<<8
#define seg_2 1<<9
#define seg_3 1<<10
#define seg_4 1<<11

typedef unsigned char u8;


u8 seg_lut[11]={0xc0,0xf9,0xa4,0xb0,0x99,
0x92,0x82,0xf8,0x80,0x90};
void display_digit(unsigned int );
void delay_ms(int);

int main()
{
PINSEL0=0;
IODIR0=seg_d|seg_1|seg_2|seg_3|seg_4;
while(1)
{
display_digit(1432);
}
}

void display_digit(unsigned int n)


{
char k;
for(k=0;k<50;k++)
{
IOCLR0=seg_d;
IOSET0=seg_lut[n/1000];
IOCLR0=seg_1;
delay_ms(5);
IOSET0=seg_1;

IOCLR0=seg_d;
IOSET0=seg_lut[(n/100)%10];
IOCLR0=seg_2;
delay_ms(5);
IOSET0=seg_2;

IOCLR0=seg_d;
IOSET0=seg_lut[(n/10)%10];
IOCLR0=seg_3;
delay_ms(5);
IOSET0=seg_3;

IOCLR0=seg_d;
IOSET0=seg_lut[n%10];
IOCLR0=seg_4;
delay_ms(5);
IOSET0=seg_4;

}
}

void delay_ms(int ms)


{
T0PR=15000-1;
T0TCR=0X01;
while(T0TC<ms);
T0TCR=0X03;
T0TCR=0X00;
}

CODE: help programmm

#include<lpc21xx.h>
#define seg_d 0xff
#define seg_1 1<<8
#define seg_2 1<<9
#define seg_3 1<<10
#define seg_4 1<<11
#define SW1 14

typedef unsigned char u8;


u8 seg_lut[4]={0x89,0x86,0xc7,0x8c};
void display_digit(void );
void delay_ms(int);

int main()
{
PINSEL0=0;
IODIR0=seg_d|seg_1|seg_2|seg_3|seg_4;
while(1)
{
display_digit();
//delay_ms(1000);
}
}
void display_digit(void)
{
char k;
u8 i;
if(((IOPIN0>>SW1)&1)==0)
{
for(i=0;i<5;i++)
{
for(k=0;k<50;k++)
{
IOCLR0=seg_d;
IOSET0=seg_lut[0];
IOCLR0=seg_1;
delay_ms(5);
IOSET0=seg_1;

IOCLR0=seg_d;
IOSET0=seg_lut[1];
IOCLR0=seg_2;
delay_ms(5);
IOSET0=seg_2;

IOCLR0=seg_d;
IOSET0=seg_lut[2];
IOCLR0=seg_3;
delay_ms(5);
IOSET0=seg_3;

IOCLR0=seg_d;
IOSET0=seg_lut[3];
IOCLR0=seg_4;
delay_ms(5);
IOSET0=seg_4;

}
delay_ms(1000);
}
}
}
void delay_ms(int ms)
{
T0PR=15000-1;
T0TCR=0X01;
while(T0TC<ms);
T0TCR=0X03;
T0TCR=0X00;
}

code: 7 seg float:

#include<LPC21XX.H>
#include"delay.h"
#define seg_d 0xff //p0.0 to p0.7

#define seg_1 1<<8


#define seg_2 1<<9
typedef unsigned char u8;
u8 dp1=0x7f,dp2=0x7f;
u8 seg_lut[11]={0xC0,0xF9,0xA4,

void digit_disply(int);
void float_disply(float);

int main()
{
PINSEL0=0;
IODIR0=seg_d|seg_1|seg_2;

while(1)
{
float_disply(2.1);
}
}
void digit_disply(int x)
{
char k;
for(k=0;k<100;k++)
{
IOCLR0=seg_d;
IOSET0=seg_lut[x/10]&dp1;
IOSET0=seg_1;
delay_milliseconds(5);
IOCLR0=seg_1;

IOCLR0=seg_d;
IOSET0=seg_lut[x%10];
IOSET0=seg_2;
delay_milliseconds(5);
IOCLR0=seg_2;
}
}
void float_disply(float f)
{
int temp=0;
if((f>=0.0)&&(f<10.0))
{
dp1=0x7f;
temp=f*10;
}
digit_disply(temp);
}

uart:
1) loop back

#include<lpc21xx.h>
void config(void);
void TX_data(unsigned char);
unsigned char RX_data(void);
int main()
{
unsigned char d;
config();

while(1)
{
d=RX_data();
TX_data(d);
}
}
void config(void)
{
PINSEL0=0x05;
U0LCR=0x83;
U0DLL=97;
U0DLM=0;
U0LCR=0X03;
}
void TX_data(unsigned char d)
{
while(((U0LSR>>5)&1)==0);
U0THR=d;
}
unsigned char RX_data(void)
{
while(((U0LSR>>0)&1)==0);
return U0RBR;
}

2)Assisgnment 1:

#include<lpc21xx.h>
#include"LCD4bit.h"
void config(void);
void TX_data(unsigned char);
unsigned char RX_data(void);
int main()
{
unsigned char d;
config();
LCD_INIT();
while(1)
{
d=RX_data();
TX_data(d);
LCD_COMMAND(0x80);
LCD_DATA(d);
}
}
void config(void)
{
PINSEL0=0x05;
U0LCR=0x83;
U0DLL=97;
U0DLM=0;
U0LCR=0X03;
}
void TX_data(unsigned char d)
{
while(((U0LSR>>5)&1)==0);
U0THR=d;
}
unsigned char RX_data(void)
{
while(((U0LSR>>0)&1)==0);
return U0RBR;
}

2)Assisgnment 2:

#include<lpc21xx.h>
#include"LCD4bit.h"
void config(void);
void TX_data(unsigned char);
unsigned char RX_data(void);
void TX_STR(unsigned char *);
int main()
{
unsigned char d;
unsigned char buffer[100];
unsigned char i = 0;

config();
LCD_INIT();

while(1)
{
d = RX_data();
if(d == '\n')
{
buffer[i] = '\0';
TX_STR(buffer);
LCD_COMMAND(0x01);
LCD_STR(buffer);
i = 0;
}
else
{
if (i < 99)
{
buffer[i++] = d;
}
}
}
}
void config(void)
{
PINSEL0=0x05;
U0LCR=0x83;
U0DLL=97;
U0DLM=0;
U0LCR=0X03;
}
void TX_STR(unsigned char *d)
{
while(*d)
TX_data(*d++);
}
void TX_data(unsigned char d)
{
while(((U0LSR>>5)&1)==0);
U0THR=d;
}
unsigned char RX_data(void)
{
while(((U0LSR)&1)==0);
return U0RBR;
}

code: Interrupt a to z

#include<LPC21XX.H>

#define SW 14
#define LED 1<<17
void UART0_CONFIG(void);
void CONFIG_UART0_INT(void);
char ch='A';
void UART0_isr(void) __irq
{
int temp;
temp=U0IIR;
if(temp==0x02)
{
if(ch<'Z')
U0THR=++ch;
}
VICVectAddr=0;
}

int main()
{
IODIR0=LED;
UART0_CONFIG();
CONFIG_UART0_INT();
U0THR=ch;
while(1)
{
if(((IOPIN0>>SW)&1)==0)
IOCLR0=LED;
else
IOSET0=LED;
}
}

void UART0_CONFIG(void)
{
PINSEL0=0x5;
U0LCR=0x83;
U0DLL=97;
U0DLM=0;
U0LCR=0x03;
}

void CONFIG_UART0_INT(void)
{
VICIntSelect=0;
VICVectCntl0=(1<<5)|6;
VICVectAddr0=(int)UART0_isr;
VICIntEnable=1<<6;
U0IER=1<<1;
}

code: loop back interrupt

#include<LPC21XX.H>

#define SW 14
#define LED 1<<17
void UART0_CONFIG(void);
void CONFIG_UART0_INT(void);
void UART0_isr(void) __irq
{
char temp;
temp=U0IIR;
if(temp==0x04)
{
U0THR=U0RBR;
}
VICVectAddr=0;
}

int main()
{
IODIR0=LED;
UART0_CONFIG();
CONFIG_UART0_INT();
//U0THR();
while(1)
{
if(((IOPIN0>>SW)&1)==0)
IOCLR0=LED;
else
IOSET0=LED;
}
}

void UART0_CONFIG(void)
{
PINSEL0=0x5;
U0LCR=0x83;
U0DLL=97;
U0DLM=0;
U0LCR=0x03;
}

void CONFIG_UART0_INT(void)
{
VICIntSelect=0;

VICVectCntl0=(1<<5)|6;
VICVectAddr0=(int)UART0_isr;
VICIntEnable=1<<6;
U0IER=1<<1|1<<0;
}

code: Keypad

#include<lpc21xx.h>
#include"lcd.h"
#define c0 (IOPIN0&(1<<16))
#define c1 (IOPIN0&(1<<17))
#define c2 (IOPIN0&(1<<18))
#define c3 (IOPIN0&(1<<19))

#define r0 1<<20
#define r1 1<<21
#define r2 1<<22
#define r3 1<<23
unsigned int key_lut[4][4]={{1,2,3,4},{5,6,
typedef unsigned char u8;
unsigned int keyscan (void)
{
u8 row_val,col_val;
IODIR0|=r0|r1|r2|r3;
while(1)
{
IOCLR0|=r0|r1|r2|r3;
IOSET0|=c0|c1|c2|c3;
while((c0&&c1&&c2&&c3)==1);
IOCLR0=r0;
IOSET0=r1|r2|r3;
if((c0&&c1&&c2&&c3)==0)
{
row_val=0;
break;
}
IOCLR0=r1;
IOSET0=r0|r2|r3;
if((c0&&c1&&c2&&c3)==0)
{
row_val=1;
break;
}
IOCLR0=r2;
IOSET0=r1|r0|r3;
if((c0&&c1&&c2&&c3)==0)
{
row_val=2;
break;
}
IOCLR0=r3;
IOSET0=r1|r0|r2;
if((c0&&c1&&c2&&c3)==0)
{
row_val=3;
break;
}
}
if(c0==0)
col_val=0;
else if(c1==0)
col_val=1;
else if(c2==0)
col_val=2;
else
col_val=3;
delay_millisec(150);
while((c0&&c1&&c2&&c3)==0);
return key_lut[row_val][col_val];
}

int main()
{
int res;
LCD_INIT();
LCD_STR("4x4 keypad");
while(1)
{
LCD_COMMAND(0xc0);
res=keyscan();
LCD_INTEGER(res);
delay_millisec(500);
LCD_COMMAND(0x01);
}
}

can :
/* main_nodeA_TX.c */
#include "header.h"
main(){
CAN2_MSG m1;
//m2;
can2_init();
/*sending data frame*/
m1.id=0x000001AF;
m1.rtr=0;//data frame
m1.dlc=4;
m1.byteA=0xDDCCBBAA;
m1.byteB=0;

/*m2.id=0x5;
m2.dlc=7;
m2.rtr=1;*/
while(1)
{
can2_tx(m1);//data-frame
delay_s(1);
/*can2_tx(m2);//remote frame
delay_ms(2000);*/
//can2_rx(&m2);
}
}

void can_init()
{
PINSEL1|=0X00014000;//P0.23 P0.24
VPBDIV=1;
C2MOD=0x1;
AFMR=0X02;
C2BTR=0X001C001D;
C2MOD=0x0;
}
void can_tx(struct can m1)
{
C2TID2=m1.id;
C2TFI2=m1.dlc<<16;
if(m1.rtr==0)
{
C2TFI2&=~(1<<30);//RTR=0
C2TDA2=m1.byteA;
C2TDB2=m1.byteB;
}
else
{
C2TFI2|=(1<<30);//RTR=1
}
C2CMR=(1<<0)|(1<<6);
while(C2GSR&(1<<3)==0);
}
void can_rx(struct can *m2)
{
while(C2GSR&(0X01)==0);
m2->id=C2RID;
m2->dlc=C2RFS>>16&0XF;
m2->rtr=C2RFS>>30&1;
if(m2->rtr==0){
m2->byteA=C2RDA;
m2->byteB=C2RDB;
}
C2CMR=1<<2;
}

/* main_nodeB_RX.c */
#include "header.h"
main(){
CAN2_MSG m1;
can2_init();
uart0_init(115200);
uart0_tx_string("nodeB TESTING CAN\r\n");
while(1){
can2_rx(&m1);

if(m1.rtr==0){
uart0_tx_string("nodeB: DATA-FRAME is
received\r\n");
uart0_tx_hex(m1.id);
uart0_tx(' ');
uart0_tx_hex(m1.dlc);
uart0_tx(' ');
uart0_tx_hex(m1.byteA);
uart0_tx(' ');
uart0_tx_hex(m1.byteB);
uart0_tx_string("\r\n");
}
else{
uart0_tx_string("nodeB: REMOTE-FRAME
is received\r\n");
uart0_tx_hex(m1.id);
uart0_tx(' ');
uart0_tx_hex(m1.dlc);
uart0_tx(' ');
uart0_tx_string("\r\n");
}
}

#include <LPC21xx.H>

void uart0_init(unsigned int baud){


PINSEL0|=0x5;
U0LCR=0x83;
switch(baud){
case 115200:U0DLL=32; break;//PCLK=60MHz
case 921600:U0DLL=4; break;
default: U0DLL=32 ;
}
U0LCR=0x03;
}
void uart0_tx(unsigned char data){
U0THR=data;
while((U0LSR&(1<<5))==0);
}

unsigned char uart0_rx(void){


while((U0LSR&0x1)==0);
return U0RBR;
}

void uart0_tx_string(char *ptr){


while(*ptr!=0){
U0THR=*ptr;
while((U0LSR&(1<<5))==0);
ptr++;
}
}

#include <stdio.h>
void uart0_tx_integer(int num){
char buf[10];
sprintf(buf,"%d",num);
uart0_tx_string(buf);
}

void uart0_tx_hex(int num){


char buf[10];
sprintf(buf,"%X",num);
uart0_tx_string(buf);
}

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy