CCS C PIC Timer0 kesmesi ile PWM kontrolü YARDIM

ilkersatur

Yeni Üye
Katılım
17 Haziran 2022
Mesajlar
3
Merhabalar, bütünleme sınavım için çalışmaktayım. Takıldığım bir konu var. Mikroişlemci alanına hakim olanlar yardımcı olursa çok sevinirim.
Timer0 kesmesi aktif edilmiştir.
PIN_B7 1KHz'lik PWM işaret üretecektir.
PWM duty değeri PIN_B6 gelen sinyal lojik "1" ise %60, "0" ise %40 olacaktır.
PIN_B6 lojik seviye, ana program tarafından izlenerek pwm duty değerinin değişimi timer0 kesme alt programı tarafından ayarlanacaktır.
CCS C yazılımı nasıl olmalıdır?
 

Ekler

  • Ekran görüntüsü 2022-06-17 001323.png
    Ekran görüntüsü 2022-06-17 001323.png
    10.1 KB · Görüntüleme: 194
yaptığınız yere kadar atın tamamlamanıza yardımcı olmayı deneriz.
 
#include <main.h>
#byte sfr_t0l=0xFD6
#byte sfr_t0h=0xFD7
int8 t0l_ton;
int8 t0h_ton;
int8 t0l_toff;
int8 t0h_toff;
int16 sayi;
int16 sayi1;

#byte sfr_t0con=0xFD5
#bit tmr0on=sfr_t0con.7
#bit t08bit=sfr_t0con.6
#bit t0cs=sfr_t0con.5
#bit t0se=sfr_t0con.4
#bit psa=sfr_t0con.3
#bit t0ps2=sfr_t0con.2
#bit t0ps1=sfr_t0con.1
#bit t0ps0=sfr_t0con.0


#byte sfr_intcon=0xFF2
#bit sfr_gie=sfr_intcon.7
#bit sfr_tmr0ie=sfr_intcon.5
#bit sfr_t0if=sfr_intcon.2

#INT_TIMER0
void tmr0(void)
{

while(TRUE)

if (input(PIN_B6)==1)
{
output_high(PIN_B7);

sfr_t0l=t0l_ton;
sfr_t0h=t0h_ton;
}
else
{

output_low(PIN_B7);

sfr_t0l=t0l_toff;
sfr_t0h=t0h_toff;

}
}
void timer0_ayar(void);
void timer0_kesme_ayar(void);

void main()
{

timer0_ayar();
timer0_kesme_ayar();

tmr0on=1;
sfr_tmr0ie=1;


}
void timer0_ayar(void)
{
tmr0on=0;
t08bit=0;
t0cs=0;//timer
t0se=0;
psa=1;
t0ps2=0;
t0ps1=0;
t0ps0=0;

sayi=65535;
sayi-=600;
t0h_ton=make8(sayi,1);
t0l_ton=make8(sayi,0);

sayi1=65535;
sayi1-=400;
t0h_toff=make8(sayi1,1);
t0l_toff=make8(sayi1,0);
}

void timer0_kesme_ayar(void)
{
sfr_gie=1;
sfr_t0if=0;
}
 
Kod:
if (input(PIN_B6)==1)
{
output_high(PIN_B7);

sfr_t0l=t0l_ton;
sfr_t0h=t0h_ton;
}
zaten okuyorsunuz
1(hıgh) ise b7'yi hıgh yapıyorsunuz

0 konumunu'da görmek isterseniz;
else veya if (input(PIN_B6)==0) olarak ekleyin devamına
 

Forum istatistikleri

Konular
7,920
Mesajlar
130,906
Üyeler
3,173
Son üye
apnr

Son kaynaklar

Son profil mesajları

Mutluluğun resmi illa güzel çizilmiş tablo olmak zorunda değil.Bazen basit bir çizgi,doğru bir renk,yada küçük bir detay
Python Geliştirmeye eklediğim yapay zeka sunucusu, yeni başlayanlar için roket etkisi
Bir insanın zeka seviyesinin en kolay tesbiti, sorduğu sorulardır.
yapay zeka interneti yedi bitirdi, arama motoru kullanan, forumlara yazan kaldı mı ?
az bilgili çok meraklı
Back
Top