Хотел сделать простое устройство на tiny13. Что то вроде ИК барьера: TSOP + IR LED ставишь перед ними руку должен загореться светодиод, убираешь - должен погаснуть. Но что-то не заладилось. Срабатывает через раз, и если срабатывает то светодиод не горит а мерцает. И не факт что погаснет после того как руку уберёшь. Исходник ниже. Писал сам, т.к. в готовых не разобрался. CVAVR. Грешу на фьюзы, думаю тактируется неправильно. В конфиге проекта частота 1мгц. Включенные(в 0) фьюзы: SPIEN, CKSEL0, SUT0, CKDIV8. (это стандартно было). Повесить внешний кварц возможности нет(все ноги заняты).
ЗЫ: Этот код безупречно работал у меня на tiny2313.
- Код: Выделить всё • Развернуть
#include "tiny13.h"
#include "delay.h"
#define IR_LED PORTB.2
#define LED PORTB.4
#define IR_PR PINB.3
int a=0, b=0;
void main(void)
{
DDRB.2=1;
PORTB.3=1;
DDRB.3=0;
DDRB.4=1;
while(1)
{
while(a<=16)
{
delay_us(12);
IR_LED=1;
delay_us(12);
IR_LED=0;
a++;
}
IR_LED=0;
if(IR_PR==0)
{LED=1;
}
else {LED=0;}
delay_us(600);
a=0;
}
}
Добавлено спустя 1 час 9 минут 2 секунды:Отбой тревоги
Проблема была в железе. Всё работает)