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: 213
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,388
Mesajlar
137,785
Üyeler
3,321
Son üye
osarbusa

Son kaynaklar

Son profil mesajları

mechanic ayhanarican mechanic wrote on ayhanarican's profile.
https://www.allmystery.de almanca biliyorsan burada araştır. Yapay zekada çeviriyor gerçi.
Almanların matematik bilgisi daha iyi oluyor.
“Kendi yolunu çizen kişi, kimsenin izinden gitmez.” – Nietzsche
Kim İslâm’da güzel bir çığır açarsa (güzel bir alışkanlık başlatırsa), onun sevabı ve kendisinden sonra ona uyanların sevapları, onların sevaplarından hiçbir şey eksilmeksizin ona da yazılır.
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
Back
Top