TiNy15L управление выводом PB5 на С?

Вопросы настройки, программирования, прошивки микроконтроллеров и микросхем программируемой логики
Закрыто
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Fuses=0x00 (PB5 - open darain)
DDRB=0x20; // направление выход
PINB=1; // компилятор генерит asm : out 16 1 (все в HEX)
// где 0x16 - PINB5

При старте PINB5 всегда находится в нуле т.е. выв 1 - 0В
хотя должно бить 1

кода идет переконфигурация DDRB=0; то появляется 1 - 5 в


В чем проблема?
Реклама
Мучитель микросхем
Сообщения: 459
Зарегистрирован: Вс июн 01, 2008 12:16:38

Сообщение smac »

FUZZY_ писал(а): В чем проблема?
Как уже говорилось - не стоит записывать значения в PINB. В данной модели микроконтроллера регистр PINB- только для чтения, он не может управлять выходами. Т.е. в вашем случае, чтобы установить 1 на PINB5 при DDRB-0xff нужно сделать следующее:

Код: Выделить всё

DDRB=0x20; // направление  выход
PORTB=1;  // 
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

FUZZY_ писал(а): PINB=1;
Зачем писать в PINB?(и вообще можно ли?) Пишите в PORT.
Если на PB5 надо единицу, то:
DDRB|=(1<<5); // PB5 на выход
PORTB|=(1<<5); // пришем "1" в 5-й бит регистра
При этом другие порты остаются не тронутыми...
Контактная информация:
ARV
Ум, честь и совесть. И скромность.
Аватара пользователя
Сообщения: 18850
Зарегистрирован: Чт дек 28, 2006 08:19:56
Откуда: Новочеркасск

Сообщение ARV »

осмелюсь напомнить, что в тини15 отсутствует ОЗУ и программирование на Си весьма и весьма затруднено для этого микроконтроллера... чем-то напоминает запихивание зубной пасты обратно в тюбик
если рассматривать человека снизу, покажется, что мозг у него глубоко в жопе
при взгляде на многих сверху ничего не меняется...

Мой уютный бложик... заходите!
Контактная информация:
Реклама
Эиком - электронные компоненты и радиодетали
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

Дак такие тини обычно для серьёзных задач и не используют... Мне тини13 очень нравится, такая низкая цена и такая богатая переферия! постоянно её юзаю там, где ног не надо много...
Контактная информация:
Реклама
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Для тех кто не любит читать доку привожу картинку
Вложения
TINY15L.JPG
(31.41 КБ) 459 скачиваний
Реклама
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

FUZZY_ писал(а):Для тех кто не любит читать доку привожу картинку
Для самого себя что ли? :))
Контактная информация:
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

AI_Disable писал(а):
FUZZY_ писал(а):Для тех кто не любит читать доку привожу картинку
Для самого себя что ли? :))

При DDRB=0x20; PORTB=0xFF; на 1 ноге 0 !
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

В чем проблема ? по идее должно быть 1 вывод подключен 5 в через резистор 4к7 откуда берется 0
Сверлит текстолит когтями
Аватара пользователя
Сообщения: 1116
Зарегистрирован: Чт окт 15, 2009 14:16:18
Откуда: Екб

Сообщение AI_Disable »

PB5 это RESET по дефолту. У вас же есть документ, дак в чём проблема?
Цитата из ДШ на тини15:
When the RSTDISBL Fuse is unprogrammed, this pin serves as External Reset. When
the RSTDISBL Fuse is programmed, this pin is a general input pin or a open-drain output
pin. If DDB5 is cleared (zero), PB5 is configured as an input pin. If DDB5 is set
(one), the pin is a open-drain output.
Запрограммируйте фьюз RSTDISBL и будет вам щастье. И нерабочий SPI.
Контактная информация:
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Если бы RSTDISBL был не запрограммирован то как на этом выводе
1 -> PB5 всегда держится 0 ?

Процессор должен был находиться в состоянии RESET т. е. на всех выводах пота В должна присутствовать логическая 1 программа не должна выполняться.

У меня работают прерывания ТС0 и watchdog
в цикле сбрасывается.

(Я с SPI не работаю и биты защиты снимаются легко ;) )
Потрогал лапой паяльник
Сообщения: 390
Зарегистрирован: Чт сен 24, 2009 17:22:51
Откуда: UK

Сообщение FUZZY_ »

Тема закрыта это баг TINY15L
При конфигурации PB5 как выход на нем всегде присутствует 0 - это баг топологии кристалла и всякие манипуляции преденные выше не работают!!! При записи в порт PORTB в 3 старших разрядах всегда присутствует 0 чтобы вы туда не писали.

При необходимости установить лог 1 на PB5 его конфигурируют как вход
Закрыто

Вернуться в «Микроконтроллеры и ПЛИС»