ATtiny13A 101 применение

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

ага и pulseIn пришлось исправить. перменную ограничитель внутрь функции засунуть, а то ругался компилятор

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

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

и еще. зачем указывать пин на выход если он настраивается еще раз в функции

void analogWrite(uint8_t pin, uint8_t val){
	pinMode(pin, OUTPUT); //For compatibility - STUPID! 
	if(val==0){ //Handle Off condition
		digitalWrite(pin,0);
	} else if(val == 255){ //Handle On condition
		digitalWrite(pin, HIGH);
	} else { //Otherwise setup the appropriate timer compare
		if(pin == 1){
			TCCR0A |= (1 << COM0B1);
			OCR0B = (val / 4) * 4;
		}
		if(pin == 0){
			TCCR0A |= (1 << COM0A1);
			OCR0A = val;
		}
	}
}

кстати тоже самое и к основному ядру относится

и что интересно каждый вызов функции настраивает на выход

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

если смотреть ядро столько прозапас сделано, для защиты от дурака. в принципе оно логично с учетом основного количества ардуинщиков, но так замедляет

тот же digitalWrite если убрать про выключение шима на пине и еще вроде что то то скорость выполнения повышается в 10 раз

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

jeka_tm пишет:

ага и pulseIn пришлось исправить. перменную ограничитель внутрь функции засунуть, а то ругался компилятор

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

Можно поподробнее?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

в events

unsigned long pulseIn(unsigned char pin, unsigned char stat){
	unsigned long st;
	unsigned long timeout = 0xFFFFFFFF;
	while(digitalRead(pin) != stat){if(micros() - st > timeout){return 0;}}
	st = micros();
	while(digitalRead(pin) == stat){if(micros() - st > timeout){return micros()-st;}}
	return micros()-st;
}

а то давняя затея сделать драйвер для мотора на тиньке не отпускает. и думаю надо делать сразу под PPM сигнал, так удобнее

хотя может и не использовать ее и переписать, с другой стороны PPM сигнал медленный и стандарных функций digitalRead должно хватить

проверять надо конечно

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

хотя определенный смысл в этом есть конечно, я про задавать ограничитель самому

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

если возвращенное значение равно нулю не использовать его, ну или другое действие

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

jeka_tm пишет:

в events

unsigned long pulseIn(unsigned char pin, unsigned char stat){
	unsigned long st;
	unsigned long timeout = 0xFFFFFFFF;
	while(digitalRead(pin) != stat){if(micros() - st > timeout){return 0;}}
	st = micros();
	while(digitalRead(pin) == stat){if(micros() - st > timeout){return micros()-st;}}
	return micros()-st;
}

 

Данный код протестировал? Потому что если я его включу в архив и будет маленько досадно если работать не будет...

ЗЫ пожалуйста, вырубай нумерацию строк в коде.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

И кстати меня тоже не покидает желание замутить драйвер для движка на тини13, но займусь я этим походу после нового года аж...

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

К стати, данная тема сушествует уже давно, может поре её закрепить?

А вот что обидно что поректов на тини13 особо не побольшало... Я и видео снял, и статью на хабр замутил... Как же популяризовать тини13? Отличный же МК, а главное недорогой, жечь не так жаль.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

jeka_tm пишет:

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

 

ок, представь ситуацию когда мне нужно скопировать только отдельную функцию, и что мне её с циферками сдирать? Ну да можно копирнуть весь код и вставить в блокнот и оттудО достать что интересует, но человек существо ленивое же... Я по крайней мере точно.

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

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

я столкнулся с такой глупостью что логика типа 74HC или CD4000 стоит дороже тиньки 13. почему тогда не замутить драйвер на ней. преимущества явные, кроме разве что напряжения коммутации

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

К стати, ты под драйвером имеешь ввиду контроллер для l298n? То есть мы тине как-то пихаем данные, типа едь в перёд, тиня подаёт две лог 1 на l298n, там вроде на dir* и pwm*...

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

jeka_tm пишет:

про какую тему говоришь? про драйвер? 

Я про тему 101 применение, пора бы прикрепить сверху, ато постоянно где-то на второй/третьей страничке этой ветки висит...

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

неа. тут почитай что я планирую

http://arduino.ru/forum/proekty/arduino-draiver-motora-dlya-robota?page=...

хочу по минимуму деталей. насколько возможно без потери качества. шим до 20 кгц

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

HWman пишет:

jeka_tm пишет:

про какую тему говоришь? про драйвер? 

Я про тему 101 применение, пора бы прикрепить сверху, ато постоянно где-то на второй/третьей страничке этой ветки висит...

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

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

jeka_tm пишет:

неа. тут почитай что я планирую

http://arduino.ru/forum/proekty/arduino-draiver-motora-dlya-robota?page=...

хочу по минимуму деталей. насколько возможно без потери качества. шим до 20 кгц

Я хз когда это переварю, может лучше опишешь в двух словах?

NikitosZs
NikitosZs аватар
Offline
Зарегистрирован: 26.09.2013

HWman пишет:

 Отличный же МК, а главное недорогой, жечь не так жаль.

Что верно, то верно. Жечь не жалко, но оно и не горит.... Тут в конце видео сжигания газовой горелкой.

офтоп: Задолбали уведомления на е-майл. Не могу никак от них отписаться. С каждым комментарием приходит новое письмо и телефон пищит, уже бесит. Отписывался и через "Мой профиль" и через ссылку в самом е-майле, все: бестолку... Как можно решить эту проблему?....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

NikitosZs пишет:

HWman пишет:

 Отличный же МК, а главное недорогой, жечь не так жаль.

Что верно, то верно. Жечь не жалко, но оно и не горит.... Тут в конце видео сжигания газовой горелкой.

офтоп: Задолбали уведомления на е-майл. Не могу никак от них отписаться. С каждым комментарием приходит новое письмо и телефон пищит, уже бесит. Отписывался и через "Мой профиль" и через ссылку в самом е-майле, все: бестолку... Как можно решить эту проблему?....

страдать. сильно страдать и больше никак

NikitosZs
NikitosZs аватар
Offline
Зарегистрирован: 26.09.2013

У всех так?.. Это же ужасно.... 

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Как думаете что это будет?

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

зачем например мне эта угадайка

NikitosZs
NikitosZs аватар
Offline
Зарегистрирован: 26.09.2013

Макетная плата под автономные, малопотребляющие проекты?

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

https://www.youtube.com/watch?v=T-tFXdjZQX8

 

Ещё один проектик на МК ATtiny13 в копилку.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

HWman пишет:

Кстати, тиня залочилась когда я выбрал данную опцию:

attiny13int.name=Attiny13 @ 128 KHz (internal watchdog oscillator)
attiny13int.upload.using=arduino:arduinoisp
attiny13int.upload.maximum_size=1024
attiny13int.upload.speed=250 # important for not losing connection to a slow processor
attiny13int.bootloader.low_fuses=0x7B
attiny13int.bootloader.high_fuses=0xFF
attiny13int.bootloader.unlock_bits=0x3F
attiny13int.bootloader.lock_bits=0x3F
attiny13int.build.mcu=attiny13
attiny13int.build.f_cpu=128000
attiny13int.build.core=core13

Разлочить удалось при помощи этой ссылки http://pastebin.com/Aw5BD0zy этот скетч превращает ардуино в AVRISP программатор, но в отличии от стандартного примера работает на низкой скорости.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

http://habrahabr.ru/post/152299/ может кому пригодиться. 

"Размер скетча в двоичном коде: 236 байт (из 1 024 байт максимум)"

 
haplen
Offline
Зарегистрирован: 23.08.2013

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

prosto_andriy
Offline
Зарегистрирован: 09.12.2012

HWman пишет:

...Разлочить удалось при помощи этой ссылки http://pastebin.com/Aw5BD0zy этот скетч превращает ардуино в AVRISP программатор, но в отличии от стандартного примера работает на низкой скорости.

Я посмотрел - там два поля с кодами! Один обычный, а другой обозначен как RAW Paste Data!!! Что это такое и как его загружать??? Подскажите пожалуйста, если не сложно!

И ещё у меня такой вопрос:  есть ли у контроллеров ATTiny13, поддержка какого-то другого интерфейса, кроме SPI???Насколько я знаю - это самый простой микроконтроллер, непонятно, зачем тогда ставить на его отладочную плату miniUSB???

axill
Offline
Зарегистрирован: 05.09.2011

ошибаетесь, у нее даже SPI нету. А разьем ключительно для питания

NeiroN
NeiroN аватар
Offline
Зарегистрирован: 15.06.2013

Киньте ссылку на самое свежее "ядро" для среды 1.0.5+ (чтобы тупо скопировал и пиши код)

Если кто-то допиливал(оптимизировал) там всякие функции до идеала - дайте, ато с github.com опять пиалька....

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

prosto_andriy пишет:

смотрел - там два поля с кодами! Один обычный, а другой обозначен как RAW Paste Data!!! Что это такое и как его загружать??? Подскажите пожалуйста, если не сложно!

RAW Paste Data - код приспособлен для копирования а другой вариант для чтения кода. Что там что там код одинаков, только отличается подсветкой синтаксиса.

prosto_andriy пишет:

 ...у меня такой вопрос:  есть ли у контроллеров ATTiny13, поддержка какого-то другого интерфейса, кроме SPI???Насколько я знаю - это самый простой микроконтроллер, непонятно, зачем тогда ставить на его отладочную плату miniUSB???

Ну... если начать изучать BASCOM-AVR то можно получить ещё и простую работу с программным UARTом, который относительно будет потреблять не много ресурсов.

Как тут говорил, разъём тут просто для питания, ну и может кто-то какое-то удобство в этом увидит, мне лично по барабану как подавать на тиню питание.
 

NeiroN пишет:

Киньте ссылку на самое свежее "ядро" для среды 1.0.5+ (чтобы тупо скопировал и пиши код)

Если кто-то допиливал(оптимизировал) там всякие функции до идеала - дайте, а то с github.com опять пиалька....

Обновил второй пост, подправил недочёты в функциях analogWrite()  и в функции pulseIn() как посоветовал jeka_tm.

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Попытка переварить форум ардуино це це привела к вот такой ссылке:

http://forum.arduino.cc/index.php?PHPSESSID=ue3ptc8ksidhq07l8upmlr1h52&t...

Может кто потестит на последних версиях ИДЕ?

Unreturned
Offline
Зарегистрирован: 04.05.2013

HWman пишет:

Обновил второй пост, подправил недочёты в функциях analogWrite()  и в функции pulseIn() как посоветовал jeka_tm.

старое ядро работает

HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Фот функция из версии 0.18.5:
 

unsigned long pulseIn(unsigned char pin, unsigned char stat, unsigned long timeout = 0xFFFFFFFF){
  unsigned long st;
  while(digitalRead(pin) != stat){
    if(micros() - st > timeout){
      return 0;
    }
  }
  st = micros();
  while(digitalRead(pin) == stat){
    if(micros() - st > timeout){
      return micros()-st;
    }
  }
  return micros()-st;
}

 

А фот та что предложыл Жека:

unsigned long pulseIn(unsigned char pin, unsigned char stat){
  unsigned long st;
  unsigned long timeout = 0xFFFFFFFF;
  while(digitalRead(pin) != stat){
    if(micros() - st > timeout){
      return 0;
    }
  }
  st = micros();
  while(digitalRead(pin) == stat){
    if(micros() - st > timeout){
      return micros()-st;
    }
  }
  return micros()-st;
}

 

Unreturned
Offline
Зарегистрирован: 04.05.2013

HWman пишет:

А фот та что предложыл Жека:

unsigned long pulseIn(unsigned char pin, unsigned char stat){
  unsigned long st;
  unsigned long timeout = 0xFFFFFFFF;
  while(digitalRead(pin) != stat){
    if(micros() - st > timeout){
      return 0;
    }
  }
  st = micros();
  while(digitalRead(pin) == stat){
    if(micros() - st > timeout){
      return micros()-st;
    }
  }
  return micros()-st;
}

К сожалению не работает

 
HWman
HWman аватар
Offline
Зарегистрирован: 26.02.2013

Unreturned пишет:

К сожалению не работает

Да знаю, компилятор говорит мол:

BareMinimum.ino: In function 'void loop()':
BareMinimum:1: error: too many arguments to function 'long unsigned int pulseIn1(unsigned char, unsigned char)'
BareMinimum:26: error: at this point in file

 

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

art-mistik
Offline
Зарегистрирован: 05.12.2014

Мужики, не знаю в какую ветку написать ((((

Помогите - плз)))
Задача такая:

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

спасибо, может кто поможет, я сам не бум бум ))

dimaris
dimaris аватар
Offline
Зарегистрирован: 27.03.2012

Так тебе не контроллер а обычный мультивибратор нужен, посмотри в сторону NE555 она как раз под это заточена. Ну если так важно 15 минут на старте то можно 2 таких микрухи применить.

axill
Offline
Зарегистрирован: 05.09.2011

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

art-mistik если вы хотите, чтобы кто то за вас все сделал есть отдельная ветка форума с поиском исполнителя. В противном случае придется самому потрудится и голову напрячь) В вашей задаче нет ничего сложного. Ваши 15 минут ставим задержку в функции setup() - она отрабатывает один раз после включения. Остальной цикл тоже делаете используя delay или mills() внутри loop() - это бесконечный цикл. Ну и не плохо бы хотя бы краме глаза посмотреть книжку типа ардуино для чайников

trembo
trembo аватар
Онлайн
Зарегистрирован: 08.04.2011

На 15 минут задержки вот этот таймер http://www.banggood.com/H3Y-2-220V-Power-On-Time-Delay-Relay-Solid-State-Timer-DPDT-Socket-p-909190.html

Сработав он включает вот такой  http://www.banggood.com/DH48S-S-Cycle-Time-Relay-1_2-Inch-Four-LED-Display-p-78286.html

От 0.1 секунды ( понятно что реле не успеет сработать) до 999 часов каждый из двух независимых каналов.

Кстати 220 Вольт питания.... Один у меня с компрессора конденсат сливает, а второй фильтр продувает

axill
Offline
Зарегистрирован: 05.09.2011

похож на электромеханический. Он? Там должен внутри стоять синхронный моторчик который вращает щестереночки, а на них контактики

Ну это не то, о чем я писал. Я отвечал на предложение выше по таймеры 555.

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

сайт какой-то как копия алиэкспресс)) покупали там?

trembo
trembo аватар
Онлайн
Зарегистрирован: 08.04.2011

Второй чисто электронный, прекраснно подходит для периодических переключений. Единственный минус- если меняем циферки- надо или выключить-включить питание или подать внешний сигнал сброса(кнопкой). Есть и плюс- можно остановить счёт внешним сигналом и снова продолжить

https://www.youtube.com/watch?v=CY1HIowBQ8o

https://www.youtube.com/watch?v=zjrPE1cJHKc

А первый- цифровой с установкой времени потенциометром , есть варианты от 1 секунды до 1 часа ( вся шкала) , внутри цифровой делитель для масштабирования времени, ну и 12 или 220 питания.

Сайт супер- покупаю постоянно (совсем не копия али), посылают только авиа, доходит очень быстро.Мои последние покупки:

https://www.banggood.com/K-Tools-38-in-1-Precision-Multifunction-Repairing-Screwdriver-Tool-Kit-p-947138.html ( 7 юсд по скидке)

https://www.banggood.com/Black-on-White-Label-Tape-For-Brother-P-Touch-Label-Maker-12mm-TZ-231-p-952215.html

https://www.banggood.com/DH48S-S-Cycle-Time-Relay-1_2-Inch-Four-LED-Display-p-78286.html

https://www.banggood.com/Wholesale-203-Wired-Mircro-Mini-Camera-With-Lamps-For-Monitoring-or-Video-Meeting-p-60668.html

https://www.banggood.com/SMA-Female-to-RPSMA-Male-Right-Angle-Adapter-Connector-p-924171.html

https://www.banggood.com/25-50-75-100FT-Flexible-Expandable-Garden-Car-Water-Hose-EUUS-Standard-p-80771.html

https://www.banggood.com/100mm-4-Inch-Diamond-Coated-Grinding-Wheel-Grinder-Silver-Tone-p-929663.html

https://www.banggood.com/FPV-5_8G-8CH-200mW-AV-Wireless-Receiver-RC805-p-73202.html

https://www.banggood.com/Diaphragm-Pump-Mini-Water-Air-Pump-12V-1_2MPa-for-Fish-Tank-Car-p-81693.html ( удобно сливать -заливать любые жидкости)

https://www.banggood.com/Wholesale-Http--or-or-www_banggood_com-or-Wholesale-Upgrade-Wltoys-V959-V2-2_4G-6-Axis-4CH-RC-Quadcopter-With-Camera-Mode-2-RTF-p-67794_html-p-67794.html

https://www.banggood.com/500pcs-10-Sizes-Fresh-Water-Sea-Fly-Fish-Fishing-Tackle-Hooks-With-Box-p-74642.html

Хватит?

 

axill
Offline
Зарегистрирован: 05.09.2011

ясно, просто по дизайну похож на механический

нает сайта я конечно же имел в виду внешний вид

Из Китая все шлют AirMail это и есть авиа или там какое то другое авио?

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

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

trembo
trembo аватар
Онлайн
Зарегистрирован: 08.04.2011

А моим карасям нравятся!  Рядом с домом пруд 70х20х2 метра. Сами развелись, граммов по 300-400, иногда линь и карп до киллограмма. Я забросил рыбалку лет 20-25 назад. Теперь только посидеть вечерком пару-тройку часиков. Но корюшку зимой на море вспоминаю часто. Иногда покупаю её весной на базаре.... ностальжи....

jeka_tm
jeka_tm аватар
Offline
Зарегистрирован: 19.05.2013

и где ты их ловишь? не на платнике случаем?

art-mistik
Offline
Зарегистрирован: 05.12.2014

Дима, спасибо за ответ - Идея хорошая и по элементной базе 555 -проще и дешевле, но задача стоит в размере в один чип тини -13. Да и по времени нет строгости в 100%, прибилизительно 15 минут и теже два часа и пять секунд )))
Не думал, что такая сложность в этом написать ))))  Хотя для меня и книгу для чайников читал и уже собирал программу, но потом в итоге путаюсь, а тем более временные рамки - 2 часа ждать чтоб про тестить - не получается, то не отрабатывает, то что то сбрасывает ((( Спасибо

art-mistik
Offline
Зарегистрирован: 05.12.2014

Спасибо AXILL за ответ. Как я уже отвечал Диме - перепробовал и уже накидал макет, на маленьких веременных отробатывает что то - по задумке, на больших временных, и каждый раз времени нет два часа сидеть ждать проверить или потом вовсе большие временные рамки - значения куда то все сбрасвается (((
Мне так не критично, частота времени и точность по времени и синхронизация и без кварца - пусть все плывет -  не так важна, все приблизитеьно - 15 мин, а потои около двух часов и отдых. Я так и писал только делал два цыкла и в тоге не хватило моего синтаксиса и ушел в дебри и в итоге не смог догнять того что у самого было и получилось изначально )))
Я понимаю, что всем тут не хочется за кого думать. Просто каждому чайнику кажется, что все так просто, только у чайника так все сложно, так что могу понять когда мне отказывают. Хотя я сам учу так всегда и не важно в какой области - однажды помог ты, чтоб помогли потом тебе. Но видисмо эта теория не у людей работает. Люди стали на друг друга злиться, особенно на чайников, который споткнулись и его допинывают терминологией в спину- а он после думает и зачем эти форумы создаются ))))
Хотя спасибо за ответ. Может подкините еще парочку конструктивных решений куда идти (на три буквы) - ну а я постараюсь пойти и ноги свесить -   и быть прилежным ученкиком ))))))))))))))))))))))) сорри за шутку)))

art-mistik
Offline
Зарегистрирован: 05.12.2014

Отдельное спасибо за сайт - дествительно хорош! )))) Спасибо за демо - реле времени, но как я уже отвечал, у меня габариты не позволят, 22о мне не зачем - мне нужно один канал - на тини 13 - с напругой логич высокий - по точности времен мне не критично.
Спасибо за ссылки ))