Перейти к содержанию

Задержка 30 Сек


Rusik05

Рекомендуемые сообщения

Доброго времени суток Уважаемые. Не хотел беспокоить вас вопросами. И сначало поискал в существующих темах о задержках. Но гичего не нащёл. Я ЧАЙНИК поэтому надеюсь на вашу помощь. Хочу сделать светофор но не как не саабражу как добится такой задержки. Для информации. Изучаю Ассемблер, работаю с AVRStudio, Proteus, а уже потом на макетной плате (ATtiny2313, 8МГц). Прощу не раскрывать всех карт сразу.

Ссылка на комментарий
Поделиться на другие сайты

Реклама: ООО ТД Промэлектроника, ИНН: 6659197470, Тел: 8 (800) 1000-321

а можно спросить, как именно искал и где среди найденного "ничего не нашел" ?

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

_http://www.lightner.net/avr/ATtiny/projects/uart.asm

Ссылка на комментарий
Поделиться на другие сайты

20% скидка на весь каталог электронных компонентов в ТМ Электроникс!

Акция "Лето ближе - цены ниже", успей сделать выгодные покупки!

Плюс весь апрель действует скидка 10% по промокоду APREL24 + 15% кэшбэк и бесплатная доставка!

Перейти на страницу акции

Реклама: ООО ТМ ЭЛЕКТРОНИКС, ИНН: 7806548420, info@tmelectronics.ru, +7(812)4094849

Задержка 30 Сек и более 30 сек ATtiny2313

цикл от 1 до х

{

задержка 1сек

}

х-время секунд :) правда точность не очень большая будет, но для большинства задач вполне нормально.

или другой вариант:

прерывание таймера (например таймер настроен на 1кГц)

{

счетчик +1

если счетчик =1000

[

счетчик обнулить

счетчик_секунд+1

если счетчик_секунд=заданной задержке (

выставить флаг окончания задежки

счетчик_секунд обнулить

)

]

}

в мейне

если флаг окончания задержки установлен тогда чтото там дальше..

чем шире кругозор, тем тупее угол обозрения

Ссылка на комментарий
Поделиться на другие сайты

Особенности хранения литиевых аккумуляторов и батареек

Потеря емкости аккумулятора напрямую зависит от условий хранения и эксплуатации. При неправильном хранении даже самый лучший литиевый источник тока с превосходными характеристиками может не оправдать ожиданий. Технология, основанная на рекомендациях таких известных производителей литиевых источников тока, как компании FANSO и EVE Energy, поможет организовать правильный процесс хранения батареек и аккумуляторов. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

А мне как раз понятен вопрос....

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

Обратите внимание что товарищ изучает - СРЕДЫ РАЗРАБОТКИ.

Вместо архитектур контроллеров и внутренней схемотехники.

Изучает всякую, извините, хрень... То, что просто сопутствует разработке. Помогает. И только.

Абсолютный отрыв от реальности. Микроконтроллеры - как компьютерная игра.

Увы.

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Выбираем схему BMS для корректной работы литий-железофосфатных (LiFePO4) аккумуляторов

 Обязательным условием долгой и стабильной работы Li-FePO4-аккумуляторов, в том числе и производства EVE Energy, является применение специализированных BMS-микросхем. Литий-железофосфатные АКБ отличаются такими характеристиками, как высокая многократность циклов заряда-разряда, безопасность, возможность быстрой зарядки, устойчивость к буферному режиму работы и приемлемая стоимость. Но для этих АКБ, также как и для других, очень важен контроль процесса заряда и разряда, а специализированных микросхем для этого вида аккумуляторов не так много. Инженеры КОМПЭЛ подготовили список имеющихся микросхем и возможных решений от разных производителей. Подробнее>>

Реклама: АО КОМПЭЛ, ИНН: 7713005406, ОГРН: 1027700032161

mil_alex

Вопервых спасибо за сылку во вторых ненадо дерзить в третьих Я искал на форуме где есть коментарии, а в A P P L I C A T I O N N O T E A V R 3 0 5 в ковычках Я толком ничего не понял

ведь Я не зря писал ЧАЙНИК (он и в африке Чайник). Если дествительно хотите помочь ТО выделите и прокоментируйте, а надсмехатся дурной тон. Ведь вчемто и вы Чайник "в хорошем смысле этого слова"

цикл от 1 до х

{

задержка 1сек

}

СИ непонимаю

Обратите внимание что товарищ изучает - СРЕДЫ РАЗРАБОТКИ.

Вместо архитектур контроллеров и внутренней схемотехники.

Я начал изучать Ассемблер чтобы лучше изучить архитектуру микроконтролера.

Изменено пользователем Rusik05
Ссылка на комментарий
Поделиться на другие сайты

Обратите внимание что товарищ изучает - СРЕДЫ РАЗРАБОТКИ.

Вместо архитектур контроллеров и внутренней схемотехники.

Я начал изучать Ассемблер чтобы лучше изучить архитектуру микроконтролера.

Марк сделал правильное замечание в первую очередь надо изучать архитектуру микроконтроллера

а на чем вы напишете программу для МК на Си или Ассемблере без разницы

в МК есть таймер при переполнении которого возникает прерывание

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

Ссылка на комментарий
Поделиться на другие сайты

Всё правильно человек делает. Написано же - Ассемблер. Ясен пень, что не алгоритм для Си ему нужен :)

Настрой делитель таймера на выбранное значение, а по прерыванию вызывай код, который выполнит роль ещё одного делителя, а именно: регистр, который увеличивается на 1 при каждом срабатывании таймера. Как досчитаешь до FF - считай, ещё на 256 поделил.

Если использовать 16-битный таймер и делитель 1024, то можно досчитать аж до

1/(8000000/1024/65536/256)=2147 секунд :)

Для твоего случая можно взять делитель 64:

1/(8000000/64/65536/256)=134 секунд

Значит, досчитав до 57, у тебя будет 30 секунда:

1/(8000000/64/65536/57)=29.88... ну почти 30.

А можно наоборот, таймер взять 8-разрядный, а переменную 16-разрядную. Для автора будет чуть сложнее, а вообще разница в коде невелика.

1/(8000000/64/256/14649)=30.001 - вот это и правда 30 секунд :)

Ссылка на комментарий
Поделиться на другие сайты

...ненадо дерзить в третьих Я искал на форуме где есть коментарии, а в A P P L I C A T I O N N O T E A V R 3 0 5 в ковычках Я толком ничего не понял

ведь Я не зря писал ЧАЙНИК (он и в африке Чайник). Если дествительно хотите помочь ТО выделите и прокоментируйте, а надсмехатся дурной тон. Ведь вчемто и вы Чайник "в хорошем смысле этого слова"

...Я начал изучать Ассемблер чтобы лучше изучить архитектуру микроконтролера.

Во первых вам никто не дерзил и соответственно не смеялся. Упаси Бог.

Это проблема старая, а Вы сошли за иллюстрацию.

Второе. Изучать ассемблер не нужно. Специально. Изучать нужно даташит на контроллер. А по мере написания простейших кодов умение работать с ассемблером, а там глядишь и с Си придет. Не велика наука.

Про временные выдержки.

Давайте рассуждать проще. По бытовому. Вам чтобы обождать трое суток и два часа (итого 74 часа) что требуется? Правильно. Часы на руке и ПАМЯТЬ. Чтобы не забыть сколько суток прошло. Так же и в контроллере.

Имеем счетчик-таймер. На борту МК. Как периферийный модуль. Он считает импульсы либо тактовой частоты контроллера (их можно поделить предделителем) либо внешние импульсы на соответствующем пине контроллера. Еще есть варианты, когда этот счетчик-таймер можно внутри МК скоммутировать на счет импульсов со специального кварцевого генератора (не системного).

Таким образом этот счетчик способен насчитать при двухбайтной разрядности 65536 импульсов до своего переполнения. А когда этот счетчик переполняется у него специальной схемой выставляется бит переполнения (флаг переполнения). сбросить этот флаг можно только программно. Этот же бит инициирует процесс прерывания программы. А именно переход п определенному адресу с запоминанием в стеке адреса выхода.

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

таким образом можно считать любое количество импульсов, просто наращивая разрядность программной части счетчика (той самой ячейки ОЗУ).

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Изучать ассемблер не нужно..

ИМХО: Ассемблер изучать нужно. Вы должны как "оче наш" знать возможности которые предоставляет Вам МК для кодирования алгоритма. Представлять все виды адресации которые используются в данной модели. Это в купе с архитектурой даст положительный результат.

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

Ссылка на комментарий
Поделиться на другие сайты

Изучать ассемблер не нужно..

Холиваров устраивать не нужно. Не место тут спорам, какой язык нужно изучать. Не всем Си даётся. Да и не для всех задач он хорош.

Ссылка на комментарий
Поделиться на другие сайты

Господа. Может не будем выдергивать фразу из контекста?

Изучать ассемблер не нужно. Специально.

Слова не стоит удалять из цитаты, если в этих словах ключевой смысл.

Какое отношение типы адресации имеют к ассемблеру? Набор команд в мнемонике ассемблера сам отложится в памяти, если занимаешься практикой. Типы адресации относятся к архитектуре и к тому же набору команд. Зазубривание ассемблерного синтаксиса совершенно тупое и пустое занятие.

вроде ясно какую мысль я доносил до автора. Где тут холивар?

Изменено пользователем my504

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

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

СИ непонимаю

я ж написал не на си, а просто по типу алгоритма на русском.

чем шире кругозор, тем тупее угол обозрения

Ссылка на комментарий
Поделиться на другие сайты

my504 тогда аккуратнее фразы строй, чтобы всем понятно читалось :rolleyes: Чтоб не гадать, что автор этим сказать хотел ;)

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

Ссылка на комментарий
Поделиться на другие сайты

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

вообще.

но как бы считается что они с ним работают сами.

естественно, при появлении проблем они звонят нам (инженерам) - и начинается тупейший диалог.

- что у вас на экране?

- ни-че-го!!! (врет, 100%, но на другой ответ у нее нет мозгов)

- что вы делали перед этим?

- ну я вааще тут не работаю, шла мимо а ваш капутер завис! (сволочь, снова врет, поскольку шесть часов подряд тыкала большим пальцем в кнопку Enter, а после чтоб не нажимать заклинила ее жеваной бумагой или ножом)

- пробовали вы выйти из программы (Esc) и зайти снова?

- да, я перезагружалась (выдернула вилку из розетки и сунула обратно)

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

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

достаточно набрать delay ATTiny

что касается споров о необходимости изучения ассемблера, я шел от ассемблеров трех разных архитектур к Си, т.е. писал например базу данных вакансий дошкольных учреждений (садиков) района на ассемблере, размер .com файла получился 4 килобайта, писал отладчик и интерпретатор для БК0010, даже продавал, ха-ха, но вовремя поумнел.

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

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

использую си.

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

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

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

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

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

Ссылка на комментарий
Поделиться на другие сайты

Всё правильно человек делает. Написано же - Ассемблер. Ясен пень, что не алгоритм для Си ему нужен

вот вот вы единственный кто меня понял благодарю

Имеем счетчик-таймер. На борту МК. Как периферийный модуль. Он считает импульсы либо тактовой частоты контроллера (их можно поделить предделителем) либо внешние импульсы на соответствующем пине контроллера. Еще есть варианты, когда этот счетчик-таймер можно внутри МК скоммутировать на счет импульсов со специального кварцевого генератора (не системного).

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

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

вообще.

Ну это уже слишком!!!!! Вы слишком требовательны и придирчивы к другим ведь неувсех такой склад ума как увас и такой опыт

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

достаточно набрать delay ATTiny

Я привык оперировать РУССКИМИ словами так кая Я незнаю английского и ваша ссылка мне ничем не помогла

Изменено пользователем Rusik05
Ссылка на комментарий
Поделиться на другие сайты

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

вообще.

Ну это уже слишком!!!!! Вы слишком требовательны и придирчивы к другим ведь неувсех такой склад ума как увас и такой опыт

я придирчив?

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

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

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

достаточно набрать delay ATTiny

Я привык оперировать РУССКИМИ словами так кая Я незнаю английского и ваша ссылка мне ничем не помогла

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

на си проще, но вы ж не хотите :)

.equ	b	=50	;4800 bps @ 1.6 MHz crystal (49.6 nominal)

	.global UART_delay
UART_delay:	ldi	temp,b
UART_delay1:	dec	temp
	brne	UART_delay1
	ret

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

микроконтроллеру наплевать, какой язык вам больше нравится.

хотите быть наравне - изучайте английский, нет - оставайтесь на обочине прогресса.

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

я не просто так спросил, что и как именно вы искали.

если вы не умеете искать правильно, учитесь сейчас и сразу.

проще всего, конечно, уйти в глухую оборону - меня никто не понял, мне нужно по-русски, я и этого и того не умею, а читать и думать лень ;)

Ссылка на комментарий
Поделиться на другие сайты

хотите быть наравне - изучайте английский, нет - оставайтесь на обочине прогресса.

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

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

нет времени. А за код спасибо. И ещё вопрос какое прерывание разрешить или разрешить глобально.

Изменено пользователем Rusik05
Ссылка на комментарий
Поделиться на другие сайты

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

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

в переменную temp кладем число (константу) и вычитаем единицу (dec)

после вычитания процессор выставляет флажки, соответствующие результату

например, если в temp еще не ноль, то команда условного перехода brne (сокращение от branch if not equal zero) выполнится и процессор перескочит на помеченную команду, в данном куске кода - опять на вычитание единицы.

снова произойдет вычитание и проверка остатка в temp на ноль

таким образом, чем больше константа, тем большее число раз произойдет вычитание единицы и проверка результата, и тем длиннее задержка от начала выполнения этой процедуры до конца (ret)

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

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

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

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

английский вариант слова прерывание - interrupt

Ссылка на комментарий
Поделиться на другие сайты

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

Абсолютное расточительство процессорного времени :) 50 тактов - да, но подвесить мк на 30 секунд таким циклом - это уже руки оборвать, и никакого оправдания этому. Даже если мк нечем занять - так пусть в спячку уходит, пока таймер считает. Хоть потребление тогда снизится.

Ссылка на комментарий
Поделиться на другие сайты

Можно не любить ответы не на вопрос.

Можно не любить вопросы без ответов.

Можно не любить ленивых на мысль авторов вопросов.

Это дело вкуса.

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

戦う前に相手のベルトの色に注目

Ссылка на комментарий
Поделиться на другие сайты

Им кажется, что они не знают самую малость

Если вы про меня то вы ошибаетесь Я осазнаю всё Больше и больше что я ничего незнаю. Это дураки думают что они умные.

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

Постараюсь слудующие вапросы излогать четче и аргументированно.

Ссылка на комментарий
Поделиться на другие сайты

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

Абсолютное расточительство процессорного времени :) 50 тактов - да, но подвесить мк на 30 секунд таким циклом - это уже руки оборвать, и никакого оправдания этому. Даже если мк нечем занять - так пусть в спячку уходит, пока таймер считает. Хоть потребление тогда снизится.

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

для светофора, который моделирует автор, оч вероятно, потребление светодиода все равно сделает экономию на спячке МК не слижком заметной, да и получается, что действительно МК занять нечем между переключениями цветов.

но никто ведь не мешает перепрошить МК второй версией прошивки, более продвинутой :D

Можно не любить ответы не на вопрос.

Можно не любить вопросы без ответов.

Можно не любить ленивых на мысль авторов вопросов.

Это дело вкуса.

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

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

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

или если поисковик не нашел - то по какому запросу.

жарковато...

Ссылка на комментарий
Поделиться на другие сайты

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

+1024:rolleyes:

Это сообщение поставляется "как есть", без каких либо гарантий. Автор сообщения не несёт какой либо ответственности

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

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.
Примечание: Ваш пост будет проверен модератором, прежде чем станет видимым.

Гость
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

Загрузка...
  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...