Merhaba Arkadaslar asagidaki linkte yazdigim bir uygulama var. yanliz getc ile rs232 den gelen datayi okutamiyorum bir turlu.
while(1)
{
//Debug
output_high(PIN_B7);
hexGelen = getc();
if(hexGelen == 0xA0)
{
if(getc() == 0x5F)
{
// A0 5F
ApplyOutPut();
}
}
else if(hexGelen == 0xA1)
{
output_high(PIN_B6); // Buraya hic gelmiyor.
if(getc() == 0x5E)
{
// A1 5E XX YY ZZ
// XX : Port Number
// YY : High Value
// ZZ : Low Value
SetOutPut();
}
}
else if(hexGelen == 0xAA)
{
if(getc() == 0x55)
{
// AA 55 XX
// XX : Reset to hex all output pin
ReSetOutPut();
ApplyOutPut();
}
}
}
http://dl.dropbox.com/u/57820754/74hc595.rar
PIC model nedir? CCS C ile seri veri alma işlemini aşağıdaki örnek üzerinden yeniden yapabilirsiniz, veriyi kesme ile almalısınız. Şöyle forumu bir gezin, bu konu en sık konuşulan konulardan.
//picproje.org
//CCS C seri veri kesmesi örnek kullanımı
#include <16F628A.h>
#fuses NOPROTECT, NOMCLR, NOWDT, NOLVP, INTRC_IO
#use delay(clock=4M)
#use rs232(baud=9600, xmit=PIN_b2, rcv=PIN_b1)
unsigned int veri=0;
void main(){
enable_interrupts(global);
enable_interrupts(int_rda);
while(1){
output_high(pin_b4);
delay_ms(1000);
output_low(pin_b4);
delay_ms(1000);
}
}
#int_rda
void seri_veri_geldi(){
veri=getc();
output_toggle(pin_b0);
}
İyi çalışmalar.
Mutlaka seri haberleşme kesmesi kullanmalısınız.
Alacağınız verinin boyutu hakkında bilginiz varsa buna göre bir buffer oluşturup bilgiyi almalısınız.
Örnek kod şu şekilde olacak.
#INT_RDA
void SerialInt()
{
Recieve_String[counter_read]=getchar();
counter_read++;
if(counter_read==69)counter_read=0;
}
Cok tesekkur ederim. kesme kullanmadim ama sorunu cozdum; Ama profesyoneller olarak onerinize gore kodu duzenliyip kesmeli hala getireyim.
Sorunum cok ta basitmis EX8B PIC deneme bordu kullaniyorum C portlarindaki input swichi ON konumunda olunca C6-C7 Rx-Tx pinleri 0 degeri donduruyor herzaman. kimi zaman getC hic 0 donduruyor kimi zaman ise hic bir sey gelmemis gibi davraniyor. OFF yapinca sorun cozuldu. bu board'i yeni kullanmaya basladim. bundan dolayi alisamadim daha.