Picproje Elektronik Sitesi

DERLEYİCİLER => CCS C => Konuyu başlatan: aboo67 - 01 Nisan 2013, 17:05:42

Başlık: CCS SPI yardım
Gönderen: aboo67 - 01 Nisan 2013, 17:05:42
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);
}
}
Başlık: Ynt: CCS SPI yardım
Gönderen: aboo67 - 02 Nisan 2013, 20:35:41
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 ?
Başlık: Ynt: CCS SPI yardım
Gönderen: sadogan - 03 Nisan 2013, 00:44:43
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.
Başlık: Ynt: CCS SPI yardım
Gönderen: Mucit23 - 09 Temmuz 2013, 18:59:19
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?
Başlık: Ynt: CCS SPI yardım
Gönderen: hasankara - 09 Temmuz 2013, 20:00:23
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.
Başlık: Ynt: CCS SPI yardım
Gönderen: Mucit23 - 09 Temmuz 2013, 20:20:20
Teşekkürler Aradığım buydu
Başlık: Ynt: CCS SPI yardım
Gönderen: hasankara - 09 Temmuz 2013, 20:23:45
bir şey değil :)