ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Обсуждаем контроллеры компании Atmel.
alfcatt
Родился
Сообщения: 14
Зарегистрирован: Чт апр 03, 2014 01:22:28

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение alfcatt »

akl писал(а):Для пробы сделал программу с дефолтными FUSE-битами

дак это че получается можно сразу hex файл в проц шить?прямо так
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение akl »

Если ATtiny13 новый, то да.
Аватара пользователя
Jack_A
Друг Кота
Сообщения: 6307
Зарегистрирован: Вт апр 24, 2007 07:45:40
Откуда: Minsk

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Jack_A »

alfcatt писал(а):все мои программаторы не умеют писать с возможностью выставления фьюзов.вот как то бы так что сразу хекс в тиньку залить.
Думаю, дело тут не в неумении программаторов ... :) По крайней мере мне не известен ни один, который мог бы из единого хекса раскидать - что во флеш, что в ЕЕРROM, что во фьюзы .
alfcatt
Родился
Сообщения: 14
Зарегистрирован: Чт апр 03, 2014 01:22:28

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение alfcatt »

[quote="akl"]Не 5 минут, а добрый час, но в моём понимании может выглядеть так.
TIMER_tiny13.zip

ATtiny13 CKSEL1,0 11 (встроенный генератор 128кГц) CKDIV8 1
PB0-выход управления. В исходном состоянии 0, при отсчёте интервала 1 час (3600 сек) на выходе 1
PB1-вход команды сброса таймера и выдачи 0 на PB0.[/quote Уважаемый Akl здравствуйте.я вас просил не так давно написать програмку на тиньку 13.все чудесно работает на плате.можно вопрос файл таймер тини13 который вы мне скинули в теме avr, все о прогр.2313. Можно ли внести коррективки?видите ли задача следующая -в помещении 4 датчика движения их сигнальные выходы запаралелены на один вход тиньки в нашем случае PB1 но так вышло что этот вход должен ждать не массы а 3,3v,так как при наличии движения датчики дают плюс.а на выходе RB0 в течении 3600 сек. Должна висеть единица,если на входе PB1 небудет сигнала плюс.на выходе единица пропадает ,а если с датчиков появится сигнал таймер возвращается в начало. В помещении четыре датчика они при наличае движения 3600 сек.держат свет и розетки включенным но если все ушли и в течении этого времени никакого движения не произошло,то тинька как бы засыпает и отключает всю нагрузку помещения.до появления движения,тоесть сигнала плюс с датчиков на РВ1. И фьюзы надо оставить те же встроенный генератор 128.дико извиняюсь за навязчивость и отнятое у вас время
akl
Друг Кота
Сообщения: 4444
Зарегистрирован: Пт мар 07, 2008 06:54:43
Откуда: Ижевск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение akl »

alfcatt Пробуйте
TIMER_tiny13_1.zip
Аватара пользователя
Alexen
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб ноя 09, 2013 23:43:50
Откуда: Запорожье

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Alexen »

Всем привет. Подскажите, есть устройство которое работает от батареек и внутреннего резонатора в 4 МГц, есть ли смысл уменьшить тактовую частоту к примеру до 1 МГц и подцепить внешний кварц. Есть ли в этом смысл для продления жизни батарейкам?
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение COKPOWEHEU »

Сначала стоит посмотреть на режимы сна. Если ни один из них использовать невозможно - снижайте частоту.
Аватара пользователя
Alexen
Первый раз сказал Мяу!
Сообщения: 35
Зарегистрирован: Сб ноя 09, 2013 23:43:50
Откуда: Запорожье

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Alexen »

МК настроен на режим сна "powerdown", так что смысла снижать частоту наверное нет?
Аватара пользователя
COKPOWEHEU
Говорящий с текстолитом
Сообщения: 1525
Зарегистрирован: Чт июн 10, 2010 20:11:19

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение COKPOWEHEU »

Зависимость потребления от скорости достаточно близка к линейной. Это значит, что, грубо говоря, проработав 1 мс на частоте 4 МГц, и проработав 4 мс на 1 МГц контроллер потратит одинаковое количество энергии на одинаковое количество операций. Так что да, если активно используются режимы сна, в снижении частоты особого смысла нет.
alfcatt
Родился
Сообщения: 14
Зарегистрирован: Чт апр 03, 2014 01:22:28

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение alfcatt »

Всем привет.обращаюсь к тем матерым котам которые работают в ассемблере. помогите у кого есть время. нужен простенький таймер на тиньке13 при подаче нуля на вход, на выходе появляется ноль на 5 мин.через 5 мин пропадает и минут десять потом на вход не реагирует. на внутреннем генераторе.временные характеристики не критичны.файл конечно же нужен бин,с фьюзами тоже. и желательно асм.как проги пишутся понимаю а вот с внутренними таймерами разобраться пока не получается вот за одно и хотелось бы на примере этого таймера разобраться.всем спасибо за понимание
alfcatt
Родился
Сообщения: 14
Зарегистрирован: Чт апр 03, 2014 01:22:28

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение alfcatt »

Ну или может быть кто нить скинет в асм какой нить светофор на тиньке 13 на внутреннем такте? пытаюсь разобраться с таймером не понимаю как вычислить предделитель как частоту внутреннего генератора задавать и как эту изначальную частоту до предделителя прописывать.в обучалке если честно уж больно для меня мудрено ))) хотелось бы посмотреть как прога выглядит целиком от а до я хотя бы в txt формате или асм ну и хекс за одно чтоб наглядно залить оригинал и по месту эксперементировать.помогите кто чем может ,товарищи гуру ведь сами небось в начале не меньше тупили ))))))
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение СКАЗОЧНИК »

ВОПРОС!
Вот если АТТини 2313 при частоте 20 МГц имеет период такта длительностью 50 нс. Он теоретически может с такой же частотой дрыгатьт портами. Тогда пол периода в меандре будет длится 25 нс.
Хочу узнать скорость нарастания/спада фронта? Где увидеть? Копаю ДШ, туплю...
Станислав
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Kavka »

Тут посмотри viewtopic.php?f=57&t=104893
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
Аватара пользователя
СКАЗОЧНИК
Идёт направо - песнь заводит, Налево - сказку говорит.
Сообщения: 5000
Зарегистрирован: Чт апр 21, 2011 17:55:50
Откуда: Иркутск

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение СКАЗОЧНИК »

Блин, видел же раньше эту тему! )))) Спасибо. :beer:
Станислав
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение MOHCTEP »

Всем здоровья! Есть пара вопросов по софт шиму.
1 Почему при pwm_white=0x00 есть слабая засветка? Полагаю из-за срабатывания маски(byte), в любом случае? А как от этого избавиться цивилизованно?
2 Почему при pwm_white=0xFF, та же темнота, как и с нулевым значением? 0xFE - дает нормальную яркость.

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

uint_fast8_t pwm_white=0x00;
uint_fast8_t byte=0x1C;
//RGB Led common cathode. PORTB: bit2 - BLUE, bit3 - RED, bit4 - GREEN

ISR (TIMER0_OVF_vect){
   OCR0A=pwm_white;
   PORTB|=byte;
}

ISR(TIMER0_COMPA_vect){
   PORTB&=~byte;
}
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Kavka »

MOHCTEP, какая чатота на таймере?

Если у тебя ATTiny2313, то обрати внимание на функционал портов PINx для ножек настроенных в режиме выхода.
Это чтобы не делать чтение-операцию-запись с портами PORTx, а делать только запись. Да ещё и прочие ножки не затрагивать.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение MOHCTEP »

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

TCCR0A=(0<<COM0A1) | (0<<COM0A0) | (0<<COM0B1) | (0<<COM0B0) | (0<<WGM01) | (0<<WGM00);
TCCR0B=(0<<WGM02) | (0<<CS02) | (1<<CS01) | (0<<CS00);//clock=8000000/8
Частота, полагаю, 1 мегагерц.
обрати внимание на функционал портов PINx для ножек настроенных в режиме выхода

Т.е. такая запись будет рациональнее?

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

ISR (TIMER0_OVF_vect){
   OCR0A=pwm_white;
   PORTB=PINB | byte;
}

ISR(TIMER0_COMPA_vect){
   PORTB=PINB & ~byte;
}
Аватара пользователя
Kavka
Мудрый кот
Сообщения: 1810
Зарегистрирован: Чт июн 10, 2010 08:55:35
Откуда: Сибирские Афины

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение Kavka »

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

uint8_t byte=0x1C;

ISR (TIMER0_OVF_vect){
   OCR0A=pwm_white;
   PINB=byte;
}

ISR(TIMER0_COMPA_vect){
   PINB=byte;
}

void main() {
DDRB = byte;
PORTB = byte; // может быть ~byte
}
Ищите "Toggling the Pin" в спецификации. :sleep:

Зачем 1 мегагерц на таймер? Для ШИМа и много меньше хватит. Попробуйте делитель на 64.
А дальше надо логику страбатывания обработчиков прерываний разбирать. Если кто-нибудь вперёд не ответит, надеюсь, через пару часов подумаю.
Когда уже ничего не помогает - прочтите, наконец, инструкцию.
Лучший оптимизатор находится у вас между ушей. (Майкл Абраш, программист Quake и QuakeII)
Избыток информации ведёт к оскудению души - Леонтьев А. (сказано в 1965 г.)
MOHCTEP
Опытный кот
Сообщения: 768
Зарегистрирован: Вс янв 19, 2014 00:55:09

Re: ВСЁ по прошивке и программированию AT90S2313/ATTiny2313

Сообщение MOHCTEP »

Спасибо!
Только ведь, судя по даташиту, PINx транслируют только состояния входов порта и, к тому же закрыты хромым ридонли, т.е. только единички можно туда закинуть.
:) Попробовал заменить, на Ваш вариант, получил ошибочно работающий код.
С таймером, Вы правы - спасибо!
Ответить

Вернуться в «AVR»