سلام خدمت دوستان
یه برنامه می خوام بنویسم برای ارتباط 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;
}
}





دیدگاه