Вот у меня несколько вопросов:
привожу кусочек:
Код
// Timer 0 overflow interrupt service routine
interrupt [TIM0_OVF] void timer0_ovf_isr(void)
{
// Place your code here
}
// Timer 2 overflow interrupt service routine
interrupt [TIM2_OVF] void timer2_ovf_isr(void)
{
// Place your code here
}
// Declare your global variables here
void main(void)
{
init_mk();
while (1)
{
opros_D:
switch (PIND)
{
case 0xFD: // IF PD1 "-", then 420
TCNT0=107;
break;
case 0xFB: // IF PD2 "-", then 480
TCNT0=126;
break;
case 0xF7: // IF PD3 "-", then 580
TCNT0=148;
break; // IF PD0 "-", then 720
case 0xFE:
TCNT0=169;
break;
case 0xBF: // IF PD6 "-", then 780
TCNT0=176;
break;
};
Вопрос 1. Хочу сначала попробовать выдавить несущие прерыванием по переполнению таймера (кстати почему-то на той схеме так и есть, хотя это, я так понял, не очень рационально..), а потом сбросом при совпадении Внес необходимые десятичные значения в регистр счета T0, соответствующие частотам. Дальше таймер начинает тикать,...переполняется, возникает прерывание - уходит в подпрограмму обработки...Поскольку подпрограмма начинает работу в момент, когда состояние счетчика сбрасывается с 255 в 0, ведь вновь нужно занести в регистр счетчика необходимое начальное значение (допустим соответсвующее 420 Гц)???
Как мне сделать в подпрограмме прерывания, чтобы выбиралась нужная константа из нескольких (в моем случае 5), и в зависимости от этой константы формировались импульсы нужной частоты? Ведь регистр TCNT0 уже обнулился и сравнивать не с чем чтобы выбрать??? Вообщем я не очень представляю струтуры подпрограммы для моего случая....
никак дойти до этого не могу, видимо чего-то не знаю...
Вопрос 2.Вот использую я оператор switch (PIND) - он опрашивает весь порт, а как этим же оператором опрашивать, допустим, только PINB.5, PINB.4 на наличие gnd???
Вопрос 3. Чем явл-ся "-5В" для МК? ведь 0,3Uп<лог.0<0,6 Uпит.???Мне же надо опрашивать на наличие "-5В"...
фундамент пока мисть у меня не прочный...много белых пятен..
P.s....и еще....прошу извинения у админа форума за то, что пихаю в этот топик все подряд....по пути....
не подумал сразу, далее постараюсь придерживаться общепринятых правил...