merhaba arkadaşlar
MASTER------------------------------------SLAVE/MASTER------------oData out
PIC 1 ------------------------------------- PIC 2
Pıc1 datayı alıcak pıc2ye ileticek pic iki slave modunda bunu alıcak master moduna geçip datayi çıkışa vericek
hem slave hemde master modunda nasıl kullanabilirim ? nasıl bir yol izlemem gerek veya örnek bir kod göstebilirmisinz?
//==============================================================================
#include <16F876.h>
#include <stdio.h>
#fuses HS,NOWDT,NOPROTECT
#use delay (clock=20000000)
#use rs232(baud=2400, xmit=PIN_C6,rcv=PIN_C7)
//==============================================================================
#define SPI_MODE_0 (SPI_L_TO_H | SPI_XMIT_L_TO_H)
#define SPI_MODE_1 (SPI_L_TO_H)
#define SPI_MODE_2 (SPI_H_TO_L)
#define SPI_MODE_3 (SPI_H_TO_L | SPI_XMIT_L_TO_H)
//==============================================================================
#define SPI_ON_OFF pin_b7
#define SPI_HAZIR pin_c1
int spi_gelen;
const int digit[10]={0x40,0x79,0x24,0x30,0x19,0x12,0x02,0x78,0x00,0x10};
//==============================================================================
#int_ssp
void ssp_isr(void)
{
setup_spi(SPI_SLAVE | SPI_MODE_0 | SPI_CLK_DIV_4 | SPI_SS_DISABLED);
spi_gelen=spi_read( );
output_b(digit[spi_gelen]);
setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_4 | SPI_SS_DISABLED);
}
//==============================================================================
void yolla(unsigned char veri)
{
unsigned char i;
for(i=0x80;i>0;i>>=1)
{
if(i&veri)output_high(pin_c5);
else output_low(pin_c5);
output_high(pin_c3);
output_low(pin_c3);
}
}
//==============================================================================
void main () {
setup_spi(SPI_MASTER | SPI_MODE_0 | SPI_CLK_DIV_4 | SPI_SS_DISABLED);
enable_interrupts(INT_SSP);
enable_interrupts(GLOBAL);
while ( 1 ) {
spi_write(0x40);
output_high(pin_c2);
output_low(pin_c2);
}
}
Alıntı Yap
MASTER------------------------------------SLAVE/MASTER------------oData out
PIC 1 ------------------------------------- PIC 2
Pıc1 datayı alıcak pıc2ye ileticek pic iki slave modunda bunu alıcak master moduna geçip datayi çıkışa vericek
hem slave hemde master modunda nasıl kullanabilirim ? nasıl bir yol izlemem gerek veya örnek bir kod göstebilirmisinz?
yardım edicek yokmu ? nasıl yapabilirim ?
Soru net olmamış
1 ci pic(master olan) datayı nerden alıyor.
2 ci pic neden master moda geçiyor datayı çıkışta neye veriyor
Yapmak istediğiniz devrenin şemasını yüklerseniz daha net anlaşılacak.
Bir soruda ben sorayım.
Ccs de spi ile bir data gonderdigimizde spi tx bufferinin bosaldıgını nasıl anlarim?
Bir döngü icerisinde sürekli olaram spi_write ile buffere data yuklemek uygun olurmu?
spi interrupt enable yapıldığında, spi interrupt flag bayrağı işlem bitince 1 oluyor. yeni veri gönderirken bayrağı temizlersin ve 1 olmasını beklersin.
Teşekkürler Aradığım buydu
bir şey değil :)