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: 205
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
8,264
Mesajlar
135,487
Üyeler
3,285
Son üye
Desper79

Son kaynaklar

Son profil mesajları

erdemtr55 taydin erdemtr55 wrote on taydin's profile.
Merhaba Taydin bey,
Gruba spms serisi yapıcak mısınız?
ben 3 sargılı toroid ile 2 adet flyback sürücek bir devre yapmayı düşünüyorum.size soracak sorularım vardı?
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ı ?
Back
Top