Свежие обсуждения
Микроконтроллеры

Ликбез по С для микроконтроллеров PIC

1 32 64

Сергей К, спасибо за советы. Оказалось что все работает только симуляция на 30мгц длится очень долго.

 

Flop: ЖК дисплея 16символов 2 строки
lcd.c - входит в комплект

 

Проблему со сбросом процессора решил. Оказалось в протеусе модель МК PIC18F452 требует обязательно указать Watchdog -> OFF!!! Несмотря на то, что при компиляции у меня это указано в компиляторе. Но и это не всё, если в бесконечный цикл (в котором и происходил сброс) включить функцию "ClrWdt()", то протеус тоже будет работать правильно. Вобщем есть подозрения на микрочиповский компилятор...

 

Для FLOP (алгоритм подсказан, но переработан)
Реально работает на PIC18 c 20 мГц кварцем.
Обработка принятого кода после выхода из прерывания
//===============================================
//обработка прерывания от пульта ДУ код RC-5
//===============================================
#int_ext
int ext_IRDATA(void)
{
if (IR_RB0) return(0); //выход если на входе 1
half = 1;
last = 0;
data = 0;
received = 0;

while (received < 14)
{
set_rtcc(0); // сброс таймера TMRO
while (last == IR_RB0)
{
if (get_rtcc()>173) return (0);
}
if (half)
{
if ((get_rtcc()>52) && (get_rtcc()<78)) {
data = 1; received++;
if (last < IR_RB0) data++;
half = 0;
}
else
if ((get_rtcc()>104) && (get_rtcc()<173)) {
data = 1; received++;
if (last < IR_RB0) data++;
half = 1;
}
else return (0);
}
else
{
if ((get_rtcc()>52) && (get_rtcc()78))
half = 1;
else
return (0);
}
last = IR_RB0;
if ((received == 13)&&(last==1)&&(half == 1))
{
data = 1; received++;
}
}
return (data, FLAG_IrDa=1);
}

 

Можно ли посредством pic16f876 / pic16f877 сгенерировать на каком либо пине пилообразное напряжение в виде лесенки? Чем больше ступенек, тем лучше.
Если да, то как это должно выглядеть на С CCS?

 

На выходах PIC можно получить или "1" или "0". Все остальное только за счет ЦАП.

 

ivasi: напряжение в виде лесенки?
можно ...небольшой ЦАП есть, используйте модуль опорного напряжения всё есть в даташите

 

poruchik: небольшой ЦАП есть ?
Если не трудно, укажите страницу.

 

не трудно стр.143, правда только сейчас глянул ...для 876А/877А
не думал что ещё старые используют

 

Да, действительно.
В DS33023A описана эта возможность.
Требует буфера и задержки после каждой установки 10 мкс .