CCS SPI yardım

Başlatan aboo67, 01 Nisan 2013, 17:05:42

aboo67

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);
}
}

aboo67

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 ?

sadogan

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.

Mucit23

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?

hasankara

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.

Mucit23

Teşekkürler Aradığım buydu

hasankara