سلام دوستان.چطور میشه از رجیسترSPDRاستفاده کنم؟مگه این دستور برای ارسال و دریافت اطلاعات نیست؟هرچی مثال دیدم با دستورspi()کار کردن
میشه نحوهی استفاده از SPDRرو توضیح بدین؟
میشه نحوهی استفاده از SPDRرو توضیح بدین؟
unsigned char spi(unsigned char data)
{
SPDR=data;
while(!(SPSR & 0x80));
return SPDR;
}
unsigned char spi(unsigned char data)
{
SPDR=data;
while(!(SPSR & 0x80));
return SPDR;
}
while(spi(0x00)!="0x00")
unsigned char spi(unsigned char data)
{
SPDR=data;
while(!(SPSR & 0x80));
return SPDR;
}
#include <mega16.h>
#include <spi.h>
void main(void)
{
unsigned char data;
PORTB=0x10;
DDRB=0xB0;
data=0x25;
SPCR=0x70;
SPSR=0x00;
while (1)
{
PORTB.4=0;
spi(data);
PORTB.4=1;
}
}
#include <mega16.h>
#define xtal 8000000
#include <delay.h>
#include <alcd.h>
void main(void)
{
unsigned char m;
PORTB=0x00;
DDRB=0x40;
SPCR=0x60;
SPSR=0x00;
lcd_init(16);
while (1)
{
m=SPDR;
lcd_clear();
lcd_putchar(m);
delay_ms(10);
}
}
#include <mega16.h>
#include <spi.h>
void main(void)
{
unsigned char data;
PORTB=0x10;
DDRB=0xB0;
data=0x25;
SPCR=0x70;
SPSR=0x00;
while (1)
{
PORTB.4=0;
spi(data);
PORTB.4=1;
}
}
spi(data);
SPDR=data; while(!(SPSR & 0x80));
#include <mega16.h>
void main(void)
{
unsigned char data;
PORTB=0x10;
DDRB=0xB0;
data=0x25;
SPCR=0x70;
SPSR=0x00;
while (1)
{
PORTB.4=0;
SPDR=data;
while(!(SPSR & 0x80));
PORTB.4=1;
}
}
دیدگاه