سلام خدمت دوستان
یه برنامه می خوام بنویسم برای ارتباط spi بین دو atmega8 که تو آی سی مستر یه اینتراپت خارجی مثل یک میکرو سوئیچ باشه و تو آی سی اسلیو یه ال ای دی با هر بار زدن دکمه خاموش روشن بشه چطور باید بنویسم برنامشو ؟؟
خودم یه برنامه نوشتم ولی کار نمیکنه .
این برنامه من:
MASTER :
SLAVE :
یه برنامه می خوام بنویسم برای ارتباط spi بین دو atmega8 که تو آی سی مستر یه اینتراپت خارجی مثل یک میکرو سوئیچ باشه و تو آی سی اسلیو یه ال ای دی با هر بار زدن دکمه خاموش روشن بشه چطور باید بنویسم برنامشو ؟؟
خودم یه برنامه نوشتم ولی کار نمیکنه .
این برنامه من:
MASTER :
کد:
#include <mega8.h> #include <delay.h> volatile unsigned char a,temp; void main(void){ DDRD = (0<<DDD2); DDRB = (1<<DDB2)|(1<<DDB3)|(1<<DDB5); a=0; PORTD.2 = 0; SPCR = 0x52; MCUCR = 0x02; GICR = 0x40; PORTB.2 = 1; temp = SPDR; temp = SPSR; while (1) { PORTB.2 = 0; SPDR = a; while (!(SPSR & 0x80)); PORTB.2 = 1; } } interrupt [EXT_INT0] void ext_int0_isr(void) { a++; }
SLAVE :
کد:
#include <mega8.h> #include <delay.h> volatile unsigned char a,temp; void main(void) { DDRB = (1<<DDB4); DDRD.0 = 1; SPCR = 0x41; temp = SPDR; temp = SPSR; while (1) { a= SPDR; while (!(SPSR & 0x80)); } if (a%2==0){ PORTD.0 =~ PORTD.0; } }
دیدگاه