|
// генератор огибающей
void timer1 (void) interrupt 3 using 2 /* Int Vector at 001BH, Reg Bank 2 */
{16разрядный таймер
TF1 = 0;
TH1 = (unsigned char) HIbyte_T1;//
TL1 = (unsigned char) TL1 + LObyte_T1;
ValSinusA = dimSinA[IndexSinus];
ValSinusB = dimSinB[IndexSinus];
ValSinusC = dimSinC[IndexSinus];
if (++IndexSinus > 20) IndexSinus = 0;
}
//генератор несущей
void timer0 (void) interrupt 1 using 1 /* Int Vector at 000BH, Reg Bank 1 */
{// 8разрядный самозагружаемый
data char ValPila;
TF0 = 0;
ValPila = dimPila[IndexNesus];
//---
if ( ValPila >= ValSinusA) SHIMoutA = 0;
else SHIMoutA = 1;
if ( ValPila >= ValSinusB) SHIMoutB = 0;
else SHIMoutB = 1;
if ( ValPila >= ValSinusC) SHIMoutC = 0;
else SHIMoutC = 1;
//---
IndexNesus++;
if(IndexNesus == sizeof(dimPila)) IndexNesus = 0;
}
E-mail: info@telesys.ru