Подскажите в чем причина может быть. Заранее спасибо!
Спойлер
Код: Выделить всё
#pragma config FOSC = INTRCIO // Oscillator Selection bits (INTOSC oscillator: I/O function on RA4/OSC2/CLKOUT pin, I/O function on RA5/OSC1/CLKIN)
#pragma config WDTE = OFF // Watchdog Timer Enable bit (WDT disabled)
#pragma config PWRTE = OFF // Power-up Timer Enable bit (PWRT disabled)
#pragma config MCLRE = ON // RA3/MCLR pin function select (RA3/MCLR pin function is MCLR)
#pragma config BOREN = OFF // Brown-out Detect Enable bit (BOD disabled)
#pragma config CP = OFF // Code Protection bit (Program Memory code protection is disabled)
#pragma config CPD = OFF // Data Code Protection bit (Data memory code protection is disabled)
#define _XTAL_FREQ 4000000
#include <pic.h>
#include <xc.h>
#define OUT_R RC4
#define OUT_G RC3
#define OUT_B RC2
#include <stdlib.h>
unsigned int rgb_r=0,rgb_g=0,rgb_b=0;
unsigned int count=0;
unsigned int r=0,g=0,b=0;
unsigned int step=0;
// Timer 0 overflow interrupt service routine
void __interrupt() Timer0_ISR(void){
count++;
//канал красного
if (count == 0)
{ //если счетчик переполнился и принял значение 0
rgb_r = r; //сохранием значения в буфер
OUT_R =1; //выставляем ноги, отвечающие за ШИМ в логическую 1
}
if (rgb_r == count) { OUT_R = 0;}//по достижении заданной скважности выводим 0
// канал зелёного
if (count == 0)
{ //если счетчик переполнился и принял значение 0
rgb_g = g; //сохранием значения в буфер
OUT_G =1; //выставляем ноги, отвечающие за ШИМ в логическую 1
}
if (rgb_g == count) { OUT_G = 0;}//по достижении заданной скважности выводим 0
// канал синего
if (count == 0)
{ //если счетчик переполнился и принял значение 0
rgb_b = b; //сохранием значения в буфер
OUT_B =1; //выставляем ноги, отвечающие за ШИМ в логическую 1
}
if (rgb_b == count) { OUT_B = 0;}//по достижении заданной скважности выводим 0
}
void main(void)
{
PORTC=0b000000;
TRISC=0b000000;
OPTION_REG=0x01;
INTCON=0b101000;
while (1)
{
/*
По-умолчанию формулу R-G-B начнем с красного цвета 255-0-0.
1) Наращивается зеленый цвет 255-1-0, 255-2-0 ... 255-255-0.
2) Уменьшается красный цвет 254-255-0, 253-255-0 ... 0-255-0.
3) Наращивается синий цвет 0-255-1, 0-255-2 ... 0-255-255.
4) Уменьшается зеленый цвет 0-254-255, 0-253-255 ... 0-0-255.
5) Наращивается красный цвет 1-0-255, 2-0-255 ... 255-0-255.
6) Уменьшается синий цвет 255-0-254, 255-0-253 ... 255-0-0.
*/
if(step==0)
{
step=1;
}
if(step==1)
{
r++; g=0;b=0;
if(r>=255){step=2;}
}
if(step==2)
{
g++;
if(g>=255){step=3;}
}
if(step==3)
{
r--;
if(r<=0){step=4;}
}
if(step==4)
{
b++;
if(b>=255){step=5;}
}
if(step==5)
{
g--;
if(g<=0){step=6;}
}
if(step==6)
{
r++;
if(r>=255){step=7;}
}
if(step==7)
{
b--;
if(b<=0){step=0;}
}
__delay_ms(30);
}
}


