Elektronik ve Teknoloji Merkezi Elektrotekno.com
Elektronik ve Teknoloji Merkezi




Click here to go to the original topic

Elektrotekno.com Ana Sayfa Microchip Pic Serisi
Yazar Mesaj
yalcinaygul
Tarih: 19.05.2008, 21:52 Mesaj konusu: pic ile seri port yardım

arkadaşlar pic ile seri porttan kontrollü dc motor kontrol devresi tasarladım, fakat seri porttan bir türlü kontrol edemiyorum.ccs c yazılımı aşağıdadır,burada klavyeden 0,1,2,3,4,5 rakamlarını girince pwm duty süresini değiştiriyor,yazılımda sorun olacağını sanmıyorum ama bir bakarsanız,birde devreyi mi yanlış yapıyorumm?? bu konu hakkında yardımlarınız bekliyorum





#include"16f877.h"
#fuses xt,nowdt
#use delay(clock=4000000)
#use fast_io(b)
char duty,klavye;
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,stop=1)
#int_rda
void seri_haberlesme()
{
disable_interrupts(int_rda);
klavye=getc();
switch(klavye)
{
case '0':duty=0; break;
case '1':duty=50; break;
case '2':duty=100; break;
case '3':duty=150; break;
case '4':duty=200; break;
case '5':duty=250; break;
}
}


void main()
{
output_high(pin_b3);
set_tris_b(0x03);
port_b_pullups(true);
setup_ccp1(ccp_pwm);
setup_timer_2(t2_div_by_16,255,1);
set_pwm1_duty(0);
while(true)
{
set_pwm1_duty(duty);
enable_interrupts(int_rda);
}
}
esb72
Tarih: 26.05.2008, 09:38 Mesaj konusu:

yalcinaygul yazmış: arkadaşlar pic ile seri porttan kontrollü dc motor kontrol devresi tasarladım, fakat seri porttan bir türlü kontrol edemiyorum.ccs c yazılımı aşağıdadır,burada klavyeden 0,1,2,3,4,5 rakamlarını girince pwm duty süresini değiştiriyor,yazılımda sorun olacağını sanmıyorum ama bir bakarsanız,birde devreyi mi yanlış yapıyorumm?? bu konu hakkında yardımlarınız bekliyorum





#include"16f877.h"
#fuses xt,nowdt
#use delay(clock=4000000)
#use fast_io(b)
char duty,klavye;
#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,stop=1)
#int_rda
void seri_haberlesme()
{
disable_interrupts(int_rda);
klavye=getc();
switch(klavye)
{
case '0':duty=0; break;
case '1':duty=50; break;
case '2':duty=100; break;
case '3':duty=150; break;
case '4':duty=200; break;
case '5':duty=250; break;
}
}


void main()
{
output_high(pin_b3);
set_tris_b(0x03);
port_b_pullups(true);
setup_ccp1(ccp_pwm);
setup_timer_2(t2_div_by_16,255,1);
set_pwm1_duty(0);
while(true)
{
set_pwm1_duty(duty);
enable_interrupts(int_rda);
}
}

Selam Yalcin,
3 şeyi denermisin?
1- main foksiyonu altına "enable_interrupts(global);" satırını ekleyip yükleyerek tekrar denermisin. eğer olmazsa asağıdakini uygularmısın?
2- seri_haberlesme() procedure altındaki "disable_interrupts(int_rda);" önüne // koyarak iptal ederek denermisin?
3-ayrıca değişkenleri yani char duty,klavye; satırını "#use rs232(baud=9600,xmit=pin_c6,rcv=pin_c7,parity=N,stop=1)" satırının altına alırmsın.bazen CCS bu tarz şeylerden hata vermesede problem yaratabiliyor.

Kolay gelsin
yalcinaygul
Tarih: 28.05.2008, 16:44 Mesaj konusu:

yardımın için teşekkürler deneyeceğim...
pomak_13
Tarih: 04.06.2008, 13:56 Mesaj konusu:

devreyi koysaydın onda yanlışlık varsa söyleyebilirdik.
sakarya83
Tarih: 04.06.2008, 14:13 Mesaj konusu:

arkadaş ben bu mantığa benzer bir projeyi arkadaşa yapmıştım. Ama hitec-c ile yamıştım ve kodları da mevcut .Eğer programda bir sorunun olursa hitec-c ile yardım edebilirim.
kolay gelsin
Elektrotekno.com Ana Sayfa Microchip Pic Serisi
1. sayfa (Toplam 1 sayfa)

pic ile seri port yardım

Gizlilik Politikası

PLC programming