سلام دوستان.چطور میشه از رجیستر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; } }
دیدگاه