роботы робототехника микроконтроллеры


 Страниц (1): [1]   

> Описание: никак не могу заставить всё работать
Механик Post Id



Полковник


Сообщений всего: 76
Дата рег-ции: Апр. 2014  



Всем привет!
Недавно захотелось мне на робота поставить ИК датчики препятствий, подумал....
Купил ТСОП на 36 кГц, обвеску к нему, купил пару ИК светодиодов и микроконтроллер ATtiny13, чтобы управлять этим всем. Предполагалось, что микроконтроллер будет генерировать ШИМ (канал А, ножка PB0) с частотой 36 кГц и через транзисторный ключ включать/выключать светодиоды. К другой ножке будет подключён ТСОП и будем в бесконечном цикле опрашивать его, на наличие логической единицы и если таковая имеется, то выставляем на другую ножку микроконтроллера логическую 1.
Всё до смешного просто! тем более, что я уже делал такое в более ранних проектах, только там микроконтроллер был другой (мега 8).
По правде у меня всегда были сложности с аппаратной ШИМ в микроконтроллерах: то даташит криво прочту, то не те регистры сконфигурирую, то ещё какая-нибудь халера, но в конечном итоге всё получалось.
Так вот, купил, спаял, ТСОП ловит сигналы с телевизионного пульта, микроконтроллер весело дрыгает ножкой , все счастливы... и только ШИМ не работает ну казалось бы где ошибка(внизу код программы на си)!? я уже все режимы перепробывал-нет результата, я подумал, что, может быть, порт сгорел? я в бесконечном цикле дрыгаю ножкой программно и всё хорошо!
Люди добрые, посмотрите код, может я где-то накасячил:
CODE:
#define F_CPU 1000000UL // указываем частоту в герцах

#include <avr/io.h> // подключаем библиотеку АВР

#include <util/delay.h> // подключаем библиотеку задержек

int main (void) {

TCCR0A |=(1<<COM0A1)|(1<<COM0A0)|(1<<COM0B1)|(1<<COM0B0)|(1<<WGM01)|(1<<WGM00);

TCCR0B |=(0<<FOC0A)|(0<<FOC0B)|(1<<WGM02)|(0<<CS02)|(1<<CS01)|(1<<CS00);

DDRB = (1<<PB4)|(0<<PB3)|(1<<PB0);

PORTB |=(1<<PB3);

OCR0A = 0xFF;

while(1==1) {

PORTB &=(~(1<<PB0));

if(!(PINB&(1<<PB3))) {

PORTB |=(1<<PB4);

_delay_ms(1000);

}

else {

PORTB &=(~(1<<PB4));

}

}

}
 
 Top
Страниц (1): [1]
« Программирование микроконтроллеров »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 





Powered by Exclusive Bulletin Board
ExBB FM 1.0 RC1 Smiles by Fool from Foolstown
  Яндекс.Метрика   Рейтинг@Mail.ru