#include <18f26j50.h> // Kullanýlacak denetleyicinin baþlýk dosyasý tanýtýlýyor.
#use delay(clock=4000000) // Gecikme fonksiyonu için kullanýlan osilatör frekansý belirtiliyor
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1) // RS232 iletiþim ayarlarý belirtiliyor
#include <input.c> // input.c dosyasý programa ekleniyor
#include <stdlib.h> // stdlib.h dosyasý programa ekleniyor
#include <string.h>
#define CS PIN_C2 // CS ifadesi PIN_C2 pini yerine atanýyor
int8 _adres[4],adres_high,adres_low; // int8 tipinde deðiþkenler tanýmlanýyor
int16 adres; // int16 tipinde deðiþken tanýmlanýyor
#int_ssp // SPI iletiþiminde yazma veya okuma yapýldýðýnda meydana gelen kesme
void SPI_kesmesi()
{
output_high(pin_c0); // RC0'a baðlý LED yansýn
delay_ms(250); // Gecikme veriliyor
output_low(pin_c0); // RC0'a baðlý LED sönsün
}
/******************* ANA PROGRAM FONKSÝYONU *************************/
void main ()
{
setup_spi(spi_master| spi_L_to_H | spi_clk_div_4); // SPI iletiþim ayarlarý belirtiliyor
enable_interrupts(int_ssp); // SPI kesmesi aktif yapýlýyor
enable_interrupts(GLOBAL); // Aktif edilen tüm kesmelere izin ver
printf("\n\r***********************************************************");
printf("\n\r ADS1281EVM ADC ile olcum alma programý ");
printf("\n\r***********************************************************");
printf("\n\r");
output_high(cs); // Harici ADC CS ucu lojik-1 yapýlýyor
while(1) // Sonsuz Döngü
{
printf("\n\r\rVeri okunuyor...");
output_low(cs); // Entegre seçiliyor
spi_write(0x03); // Okuma komutu (READ) gönderiliyor
delay_ms(5); // Gecikme veriliyor
spi_write(adres_high); // Okunacak adres deðerinin 8 bitlik MSB deðeri gönderiliyor
delay_ms(5); // Gecikme veriliyor
spi_write(adres_low); // Okunacak adres deðerinin 8 bitlik LSB deðeri gönderiliyor
delay_ms(5); // Gecikme veriliyor
printf("\n\r\rAdres=%04lu Deger=0x%02X",adres,spi_read(0) ); // Ýstenen adresteki deðer okunuyor
output_high(cs); // Entegre bekleme konumuna getiriliyor
delay_ms(5); // Gecikme veriliyor
}
}