код ардуино не работает на attiny

Клапауций
Offline
Зарегистрирован: 10.02.2013

#include <avr/wdt.h>

blink977
Offline
Зарегистрирован: 20.01.2012

эта библиотека уже есть в скетче... что конкретно она делает?

Клапауций
Offline
Зарегистрирован: 10.02.2013

ресетит контроллер после двух секунд подвисания - по крайней мере так задумывалось создателями и написано в комментариях вашего(?) скетча.

blink977
Offline
Зарегистрирован: 20.01.2012

в моем скетче его не было... это уже здесь подправили

Клапауций
Offline
Зарегистрирован: 10.02.2013

blink977 пишет:

в моем скетче его не было... это уже здесь подправили

так получается, что проблему аппаратного подвисания не решает?

blink977
Offline
Зарегистрирован: 20.01.2012

точно так, мне приходится выключить питание контроллера, включить опять что бы он заработал

Клапауций
Offline
Зарегистрирован: 10.02.2013

blink977 пишет:

точно так, мне приходится выключить питание контроллера, включить опять что бы он заработал

есть такое авр'ы имеют привычку защёлкиваться при сбоях напряжения - не знаю чем можно победить кроме регулярного аппаратного сброса.

blink977
Offline
Зарегистрирован: 20.01.2012

я решил перестраховаться и вместо стабилизатора питаю его через оригинальный зарядник от айфона, и отнюдь не китайский, там не должно быть сбоев напряжения.

год назад у меня стояла такая же кнопка старта на предыдущей машине, просто плата была выполнена на атмеге 328 и голом стабилизаторе 7805 без фильтров и на dip компонентах. так вот, у меня там даже не было одтельной кнопки ресета, и за год пользования контроллер ни разу не подвис! а с этой более продуманной платой что происходит не могу понять :(

мне кажется что на реле надо поставить диоды, и вся система виснет из за того что два реле, у которых выводы катушек соединены вместе, коротят коллекторы обеих транзисторных ключей и котроллер не понимает который из них включать. я щас вспомнил что у меня на прошлой плате, реле со встроенными диодами были..

Клапауций
Offline
Зарегистрирован: 10.02.2013

примерно это имею ввиду - то, что качественно получается(напряжение питания из айфоновского зарядника) не факт, что на месте нельзя испортить теми же реле.

кстати, зарядник не совсем честный источник напряжения - лучше тот же 7805.

blink977
Offline
Зарегистрирован: 20.01.2012

зарядник на 2 ампера, потому то я его и использовал, одно реле отлично разогревает BC337 на 800ма, хотя у реле потребление 140ма, почему транзистор так греется?

завтра поставлю диоды на реле, и посмотрю что будет.... да, у меня два входа контроллера притянуты к земле резисторами 1ком, этого достаточно? или больше номиналы надо?

Клапауций
Offline
Зарегистрирован: 10.02.2013

blink977 пишет:

завтра поставлю диоды на реле, и посмотрю что будет.... да, у меня два входа контроллера притянуты к земле резисторами 1ком, этого достаточно? или больше номиналы надо?

если с этими номиналами работает, то пусть так и будет.

здесь правильная статья по поводу питания http://www.myrobot.ru/articles/mc_stab.php

обрати внимание на схему с дросселем.

а, ресет вообще подключить напрямую к 5V через отключаемый вручную джампер.

 

blink977
Offline
Зарегистрирован: 20.01.2012

отличная статья, буду вникать. у меня ресет и так напрямую на 5V. завтра выложу схему, может кто то знающий что нибудь исправит.

blink_977
Offline
Зарегистрирован: 10.08.2013

поставил на реле диоды, толку - 0.  потратил весь день и в конце решил поменять транзисторы на полевики, вроде заработало, но если выключить двигатель удерживая педаль тормоза, то через секунду включится только стартер, ну а если не нажимать на тормоз при выключении, то все работает как надо. так было и раньше, проблема со скетчем?

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Друзья, а подскажите пожалуйста...

ATtiny13 имеет 6 пинов на порту B

PB5 -- PB4 --PB3 --PB2 --PB1 --PB0

Почему код вида:

DDRB |= 1<<3;
DDRB |= 1<<0;

работает, а код вида:

DDRB = 001001;

не работает

 
 

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

DDRB = 0x9;

так работает...

mixail844
Offline
Зарегистрирован: 30.04.2012

DDRB = 0b1001;

если синтакс парсер потдерживет такую форму записи

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Приняла. Спасибо.

strarbit
Offline
Зарегистрирован: 12.06.2016

да 6 порт, Вы имеете доступ к 5. Также вы можете применить PB5,  возможность загрузка прошивка SPI будет отключена.  

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Еще вопросик...

if (PINB & (1 << 4)){

Так я првоеряю есть ли 1 на порту

как мне првоерить еть ли 0 на порту,,?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Irinka пишет:

Почему код вида:

DDRB |= 1<<3;
DDRB |= 1<<0;

работает, а код вида:

DDRB = 001001;

не работает

Потому что второе число, с точки зрения компилятора С++ - это число, записанное в восьмеричной системе счисления (ведущий 0). Его значением будет 513, вот код для наглядной демонстрации: https://onlinegdb.com/ryEMajFj7
 

 

 

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Irinka пишет:

Еще вопросик...

if (PINB & (1 << 4)){

Так я првоеряю есть ли 1 на порту

как мне првоерить еть ли 0 на порту,,?

if ((PINB & (1 << 4)) == 0){

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Спасибо. (пока писала сама поняла)))

strarbit
Offline
Зарегистрирован: 12.06.2016

также  макрос

bit_is_set(sfr, bit);    если bit в регистр sfr установлен, то возврат 1, иначе 0.
bit_is_clear(sfr, bit);  если bit в регистр sfr очищен, то возврат 1, иначе 0. 
loop_until_bit_is_set(sfr, bit);   ожидание цикл до того, пока bit в регистре sfr не будет равен 1.
loop_until_bit_is_clear(sfr, bit); ожидание цикл до того, пока bit в регистре sfr не будет равен 0.

 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

А как скетч для Аттини13, написанный в ардуино иде, перевести в HEX формат для моделирования в протеусе?

DIYMan
DIYMan аватар
Offline
Зарегистрирован: 23.11.2015

Irinka пишет:

А как скетч для Аттини13, написанный в ардуино иде, перевести в HEX формат для моделирования в протеусе?

В меню редактора, если не древний - есть соответствующий пункт, создающий HEX-файлы в папке проекта.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Скетч - Экспорт бинарного файла я естественно пробовала

 

Скетч использует 862 байт (84%) памяти устройства. Всего доступно 1024 байт.
Глобальные переменные используют 19 байт динамической памяти.
Внимание: Это ядро не подерживает экспорт скетчей. Пожалуйста ожидайте обновлений или свяжитесь с автором
Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Да просто запустите компиляцию и загрузку скетча как обычно, только без подключенной ардуины. Внизу в логах будет написано про попытку загрузить hex файл в плату. В тех логах будет видно путь, где находится hex. Обычно это временная папка проекта.

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Благодарю

strarbit
Offline
Зарегистрирован: 12.06.2016

That is another example
1. Sketcth - Export compiled Binary
2. Sketcth - Show - Sketcth Folder

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Опять вопрос...как использовать пин ресета как вход?

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Нашла, никак (если нужно прошивать)

nik182
Offline
Зарегистрирован: 04.05.2015

Можно восстановить прошивание. Нужен програматор с высоковольтным импульсом. Делается легко на коленке. В сети много схем.

Например https://habr.com/post/249967/ 

Irinka
Irinka аватар
Offline
Зарегистрирован: 28.06.2017

Спасибо. А то я прочитала что нужен программатор с высоковольтным импульсом и решила забить...а тут все просто.

А как назначить ресет портом ввода/вывода?

nik182
Offline
Зарегистрирован: 04.05.2015

Фьюз прописать. Я обычно отлаживаю программу на другой ноге и когда уверен что все в порядке и больше ничего менять не буду переписываюсь ногу на ресет. Проверяю работает или нет остальное и только потом шью фьюз, какой то из первых вроде rstdisable.

Jeka_M
Jeka_M аватар
Offline
Зарегистрирован: 06.07.2014

Irinka пишет:

А как назначить ресет портом ввода/вывода?

Фьюз RSTDISBL