برنامه زیر مربوط به master و slave یک ارتباط spi هست . زمانی که برنامه رو بدون وقفه مینویسم همه چی درست کار میکنه ولی زمانیکه از وقفه استفاده می کنم اصلا جواب نمیده .
توضیح برنامه :
میکروکنترلر (atmega32) مستر اطلاعات مربوط به یک شمارنده یک بایتی را به میکروکنترلر اسلیو (atmega32) ارسال میکند و اسلیو آنرا روی پورت d نمایش میدهد
توضیح سخت افزار :
پایه های mosi, miso , skc, ss متناظرا به هم وصل هستند و تغذیه دو میکروکنترلر مشترک است و به پایه های پورت d اسلیو تعداد 8 عدد led متصل است.
برنامه master
برنامه slave
توضیح برنامه :
میکروکنترلر (atmega32) مستر اطلاعات مربوط به یک شمارنده یک بایتی را به میکروکنترلر اسلیو (atmega32) ارسال میکند و اسلیو آنرا روی پورت d نمایش میدهد
توضیح سخت افزار :
پایه های mosi, miso , skc, ss متناظرا به هم وصل هستند و تغذیه دو میکروکنترلر مشترک است و به پایه های پورت d اسلیو تعداد 8 عدد led متصل است.
برنامه master
کد:
$regfile = "m32def.dat" $crystal = 8000000 Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = Yes , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0 Spiinit Enable Interrupts Enable Spi On Spi Spi_master Dim A As Byte A = 0 Do Waitms 200 Spiout A , 1 Loop End Spi_master: Incr A Return
کد:
$regfile = "m32def.dat" $crystal = 8000000 Config Spi = Hard , Interrupt = On , Data Order = Msb , Master = No , Polarity = High , Phase = 0 , Clockrate = 128 , Noss = 0 Spiinit Enable Interrupts Enable Spi On Spi Spi_slave Dim A As Byte Config Portd = Output Do : Loop End Spi_slave: Spiin A , 1 Portd = A Return
دیدگاه