hitech c de yazmaya çalıştığım kodu çalıştıramadım. Bi fikri olan varmı acaba
#include <htc.h>
#include <pic.h>
#define rout RD0
#define gout RD1
#define bout RD2
#define wout RD3
#define kanal 4
#define dmxbreak 1
#define dmxidle 0
__CONFIG ( HS&WDTDIS&BORDIS&LVPDIS); //konfigrasyon ayarları yapıldı
unsigned char rdt,gdt,bdt,wdt;
unsigned char dmxstate = dmxidle;
unsigned int dmx_data_counter = 0;
unsigned char dmxbuffer [kanal] = {0,0,0,0};
unsigned int dmxadres=1;
static void interrupt
kesme (void)
{ unsigned int sayici;
unsigned char rxtemp;
if(TMR0IF)
{
rdt=dmxbuffer
- ;
gdt=dmxbuffer [1];
bdt=dmxbuffer [2];
wdt=dmxbuffer [3];
if (sayici==255 )
{
rout=gout=bout=wout=1;
sayici=0;
}
if (sayici>=rdt )
{rout=0;}
if (sayici>=gdt)
{gout=0;}
if (sayici>=bdt)
{bout=0;}
if (sayici>=wdt)
{wout=0;}
sayici = sayici+1;
TMR0=217;
TMR0IF=0;
RB3=0;
}
if (RCIF==1)
{
RB3=1;
RCIF=0;
if (OERR==1)
{
OERR=0;
SPEN=0;
dmxstate = dmxidle;
SPEN=1;
}
else if (FERR==1)
{
SPEN=0;
dmx_data_counter=0;
dmxstate=dmxbreak;
SPEN=1;
}
else if (dmxstate==dmxbreak)
{
rxtemp=RCREG;
if (dmx_data_counter>=dmxadres)
{
dmxbuffer [dmx_data_counter-dmxadres]=rxtemp;
}
if (dmx_data_counter==(dmxadres+(kanal-1)))
{
dmxstate=dmxidle;
}
dmx_data_counter++;
}
}
}//void
void pic_hazirla (void)
{
//**************** mcu giriş çıkış ayarları***************
ADCON1=0X07; //ANALOG GIRISLER DIJITAL YAPILDI
TRISA=0X0F; //PORTA ILK DORT PORTU GIRIS YAPILDI
TRISB=0x00; //PORTB PORTLARI ÇIKIŞ YAPILDI
TRISC=0b10000000; //PORTC PORTLARI ÇIKIŞ YAPILDI
TRISD=0X00; //PORTD PORTLARI ÇIKIŞ YAPILDI
PORTB=0x00; //PORTB PORTLARI SIFIRLANDI
//PORTC=0x00; //PORTC PORTLARI SIFIRLADI
PORTD=0X00; //PORTD PORTLARI SIFIRLANDI
TMR0=0;
T0CS=0; // harici sinyal kaynağı
T0SE=0; // timer0 dğşen kenar kesme
PSA=0; //frekans bölücü seçimi 0=timer0 1=wdt
PS2=0; //
PS1=0; // 1:2 BÖLÜCÜ ORANI SEÇİLİ
PS0=0; //
T0IF=0;
T0IE=1; //TIMER0 KESMESİ AKTİF EDİLDİ
GIE=1;
SPBRG=0X04;
BRGH=1;
SYNC=0;
PIE1=0;
RCIE=1;
RX9=0;
CREN=1;
SPEN=1;
PEIE=1;
//********************************************************
return;
}
void main(void) // Ana fonksiyon alanı
{
pic_hazirla ();
for(;;)
{
}
}