Tuesday 16 June 2015

ARM--SPI slave

#include <LPC214X.H>  //slave
#include"lcdsub.c"
void spiint()
{
PINSEL0=0x00005500;
S0SPCR=0x000;
//S0SPCCR=16;
}
unsigned char spiread()
{
   char rx;
    while(!(S0SPSR & 0xF8));
   rx=S0SPDR;

   return rx;
}
int main()
{
char rxdata;
IO0DIR |= 0xFF<<16;
IO0DIR |= (rs);
IO0DIR |= (rw);
IO0DIR |= (en);
lcdint();
spiint();
lcdstr("initializing");
lcdcmd(0xc5);
lcdstr("slave");
delay(1050000);
lcdcmd(0x01);
lcdstr(" receiving data");
lcdcmd(0xc0);
while(1)
{

rxdata=spiread();
lcddata(rxdata);
//S0SPSR=0x00;
//spiint();
//delay(1050000);
//lcdcmd(0x01);

}
}

//#include <LPC214X.H>
//#define data 0xFF<<16    //assinging values for po.16-p0.23
#define rs (1<<13)
#define rw (1<<14)
#define en (1<<15)
void delay(int);
void lcdint();
void lcdcmd(int);
void lcddata(char);
void lcdstr(unsigned char*);
void lcdstr(unsigned char *chr)
{
while(*chr)
{
lcddata(*chr++);
}
}
void lcddata(char xdata)
{
IO0PIN = xdata<<16;
//IO0SET|=(xdata<<16);
IO0SET =(rs);
IO0CLR =(rw);

IO0SET = (en);
delay(500);
IO0CLR = (en);
}
void lcdcmd(int cmd)
{
IO0CLR =(rs);
IO0CLR =(rw);
//IO0SET|=(cmd<<16);
IO0PIN = cmd<<16;
IO0SET = (en);
delay(500);
IO0CLR = (en);
}
void lcdint()
{
lcdcmd(0x0E);
  delay(500);
lcdcmd(0x38);
delay(500);
lcdcmd(0x06);
delay(500);
lcdcmd(0x80);
 delay(500);
 //lcdstr("okay");
}
void delay(int m)
{
while(m--);
}



No comments:

Post a Comment