Tuesday 16 June 2015

ARM--SPI master

#include <LPC214X.H> //master
#include"lcdsub.c"
void spiint();
void spiint()
{
PINSEL0=0x00001500;
S0SPCR=0xA0;
S0SPCCR=8;
IO0SET |=(1<<0);
}
void spisend(char data1)
{
 S0SPDR=data1;
 while(!(S0SPSR & 0x80));
 }
unsigned char spiread()
{
   char rx;
   while(!(S0SPSR & 0x80));
   rx=S0SPDR;
}

int main()
{
IO0DIR |= 0xFF<<16;
IO0DIR |= (rs);
IO0DIR |= (rw);
IO0DIR |= (en);
IO0DIR |= (1<<0);
lcdint();
IO0SET |=(1<<1);
spiint();
lcdstr("initializing");
lcdcmd(0xc5);
lcdstr("master");
delay(1050000);
lcdcmd(0x01);
lcdstr(" sending data ");
lcdcmd(0xc0);

while(1)
{
IO0SET |=(1<<1);
spisend('a');
  lcddata('a');
delay(1050000);
delay(1050000);
//S0SPCR=0x0A0;
spiint();

}
}

//#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--);
}
/*IO0DIR |= 0xFF;
IO0DIR |= (rs);
IO0DIR |= (rw);
IO0DIR |= (en);
*/



No comments:

Post a Comment