mikroC ile PIC Programlama #13 : RGB LED
Merhaba, mikroC ile PIC programlama eğitimlerimizin bu adımında RGB LED uygulaması yapacağız.
Bölümler
Şematik Tasarım
Uygulama Kodları
// Connections
sbit LED at LATA4_bit;
sbit LEDR at LATC2_bit;
sbit LEDG at LATC1_bit;
sbit LEDB at LATD0_bit;
unsigned short dutyLEDR,dutyLEDG,dutyLEDB;
unsigned int i,counterLEDR,counterLEDG,counterLEDB;
void Interrupt(){
// 2550us = 2.55ms
if (TMR0IF_bit){
TMR0IF_bit = 0;
TMR0H = 0x88;
TMR0L = 0x78;
//Enter your code here
if(dutyLEDR) LEDR=1;
if(dutyLEDG) LEDG=1;
if(dutyLEDB) LEDB=1;
counterLEDR=0;
counterLEDG=0;
counterLEDB=0;
}
//10us
if (TMR1IF_bit){
TMR1IF_bit = 0;
TMR1H = 0xFF;
TMR1L = 0x88;
//Enter your code here
if(counterLEDR >= dutyLEDR) LEDR=0;
if(counterLEDG >= dutyLEDG) LEDG=0;
if(counterLEDB >= dutyLEDB) LEDB=0;
if(counterLEDR<255) counterLEDR++;
if(counterLEDG<255) counterLEDG++;
if(counterLEDB<255) counterLEDB++;
}
}
void InitTimer0(){
T0CON = 0x88;
TMR0H = 0x88;
TMR0L = 0x78;
GIE_bit = 1;
TMR0IE_bit = 1;
}
void InitTimer1(){
T1CON = 0x01;
TMR1IF_bit = 0;
TMR1H = 0xFF;
TMR1L = 0x88;
TMR1IE_bit = 1;
INTCON = 0xC0;
}
void setRGB(unsigned short R, unsigned short G, unsigned short B){
//PWM1_Set_Duty(R);
//PWM2_Set_Duty(G);
//dutyLEDB=B;
dutyLEDR=R;
dutyLEDG=G;
dutyLEDB=B;
}
void animateRGB(unsigned short R, unsigned short G, unsigned short B){
while((dutyLEDR != R) || (dutyLEDG != G) || (dutyLEDB != B)){
if(R>dutyLEDR) dutyLEDR++;
else if(RdutyLEDG) dutyLEDG++;
else if(GdutyLEDB) dutyLEDB++;
else if(B
Uygulama kodlarını GitHub üzerinden incelemek ve indirmek için tıklayın. Merak ettiğiniz ve aklınıza takılan soruları aşağıda 👇 yorum olarak bize iletebilirsiniz. Yeni uygulamalar gerçekleştirirken YouTube kanalımızdaki videolarımızdan yararlanmayı unutmayın. İyi çalışmalar. 🙂 #geliştirmeyebaşla