Ото будет как Вчера
 
Уведомления
Очистить все

Ото будет как Вчера

31 Посты
5 Пользователи
0 Likes
24.2 Тыс. Просмотры
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Здравствуйте. Приветствую жаворонка или супер-сову.
Да уж я действительно СУПЕР – САВА!!!
Привожу пример программы тахометра с линейной….
Премного благодарен, попробую разобраться, кстати, глядя на схемку, трудно буковки разобрать вы лучше в BMP выкладывайте, он не так коверкает!
А на чём пишете код, если на Си или на ассемблере (с этим посложнее будет, давно не программировал на нем), то без проблем смогу помочь . Выкладывайте на форуме.
Я пишу на ассемблере, и пока Си осваивать не хочу (перебор сразу с двумя языками разбираться)!!! Выкладывать пока нечего! То, что писал первоначально, перещелкивание выходов с подпрограммой задержки (бессмысленных тактах). Как я уже писал, пробовал усовершенствовать мою СУПЕР мигающую программу, сделать не на прогонке бессмысленных тактов (задержке), а при помощи таймера, и соответственно его прерываний, не вышло. Попробовал взять готовый кусок программы (стянул с обучалки с какого-то форума) написана для AT90S2313, я глянул в ДШ, таймеры в ATtiny2313 те же есть, но работать не хочет.
С fuse-битами будьте осторожней, ни в коем случае не трогайте fuse-бит SPIEN), отвечает за возможность программирования по SPI, поменяете - и не сможете прошить обычным программатором). Если Вам надо тактовая на 8MHz, а не на 1MHz, что у вас сейчас, тогда поменяйте состояние бита CKDIV8 (отключите внутренний делитель). Про fuse-биты можно почитать в комментариях к статье
Обязательно пошарю по вашей ссылке, но с того, что я на данный момент видал, просто констатация присутствия или отсутствия позиции в камне, а что для чего и что с ним делать, не описано. Конечно, видимо, нет, ничего сложного, но на данном этапе мне не понятно.
Фузы как я понимаю, достаточно сложная вещ, и экспериментов не терпят!? Тем более от ЛАМЕРОВ! Может, подскажете? Я имею в виду конкретно по моим потребностям, а не все подряд конечно! То есть работа от кварца, без деления, и если влияет на таймеры, то, что и как?! А?
Немного не успел ответить, провайдер шалит!


ОтветитьЦитата
Radioded
(@sergey)
Estimable Member Admin
Присоединился: 5 лет назад
Сообщения: 184
 

VladislavZ, подправил немного ваше последнее сообшение, выделил тегами quote цитаты для удобочитаемости. Надеюсь Вы не против ;).
То есть работа от кварца, без деления, и если влияет на таймеры, то, что и как?! А?
По сути дела тактовая частота будь то от внутренней цепочки или от внешнего кварца, она всего лишь определяет длительность выполнения одного такта микроконтроллером т.е. скорость выполнения ассемблерных команд (например, при частоте в 1мгц у вас одна команда будет выполняться за 1 микросекунду, при тактовой в 8 мегагерц за команда будет выполняться 1/8 микросекунды, хотя есть команды которым необходимо более одного такта - команды ветвления и переходов).
Фузы как я понимаю, достаточно сложная вещ, и экспериментов не терпят!? Тем более от ЛАМЕРОВ! Может, подскажете?
Подскажем, скажите какая конкретно вам нужна тактовая частота микроконтроллера?
По ассемблеру для микроконтроллеров очень рекомендую книжку https://radioded.ru/index.php?option=com_docman&task=doc_details&gid=14&Itemid=34 - просто кладезь информации!


ОтветитьЦитата
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Надеюсь Вы не против
Я только за!!! :roll: :roll: :oops:
По сути дела тактовая частота будь то от внутренней цепочки или от внешнего кварца, она всего лишь определяет длительность выполнения одного такта микроконтроллером т.е. скорость выполнения ассемблерных команд
Это то понятно, но как бы для ускорения замедления на данный момент мне проще сменить кварц, чем в фузы лесть, тем более с учетом выше изложенного
Подскажем, скажите какая конкретно вам нужна тактовая частота микроконтроллера?Конечно на данный момент любая, в смысле сейчас от этого не чего не зависит, я ж пока играюсь, учусь (это мой первый опыт). Но с освоением таймеров и прерываний знания тактовой частоты станет критичней величиной (в смысле методом тыка не эстетично)! По этому и хотел от кварца!


ОтветитьЦитата
Radioded
(@sergey)
Estimable Member Admin
Присоединился: 5 лет назад
Сообщения: 184
 

Для тактирования микроконтроллера от кварца 3-8MHz, fuse-биты нужно выставить следующим образом:

в таком виде более наглядно. ОБРАТИТЕ ВНИМАНИЕ! как обозначается запрограммированный бит, а как нулевой:

Вот тут можно просчитать какие fuse-биты как надо выставить: http://www.engbedded.com/fusecalc/ - важно не забыть выбрать модель микроконтроллера.


ОтветитьЦитата
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Мне вот попалась очень интересная страничка, (как я понимаю, очень может многим жизнь облегчить)! Уважаемый радио ДЕДУШКА, если интересно может, куда приклеить ее!
http://www.engbedded.com/fusecalc/
По поводу книжки, такое впечатления, что архивы порченые, а может и провайдер опять шалит, по крайней мере, то, что было НЕ rar, с качалось на ура (я все качал, лишняя информация не помешает) а архивы по 500 – 1000 килобайт и все дальше не идет. ЛаНа буду изучать!


ОтветитьЦитата
Radioded
(@sergey)
Estimable Member Admin
Присоединился: 5 лет назад
Сообщения: 184
 

Мне вот попалась очень интересная страничка, (как я понимаю, очень может многим жизнь облегчить)! Уважаемый радио ДЕДУШКА, если интересно может, куда приклеить ее!
http://www.engbedded.com/fusecalc/
Я уже где-то на сайте указывал данный ресурс. Еще в статьях добавлю.


ОтветитьЦитата
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Доброго времени суток други!!! Тихонька как здесь!? :roll:
Я не хочу пустые и бестолковые ветки плодить, по этому спрошу здесь. :roll:
Я тут все как - бы ассемблер продолжаю изучать, и … короче появилась идея, сотворить агрегат, контролирующий работу отопительной системы. (Ну, это типа чтоб учиться на своих ошибках, :oops: и параллельно нужную вещ, сваять ;) )! Может, я погорячился?!
Устройство должно быть умным, очень много задачным. Задача такая: 1). Знать время, и соответственно поддерживать температуру, в соответствии с графиком. 2). Глядеть на температуру помещения (желательно несколько зон). 3). Управлять температурой носителя (здесь проблема, исполнительный механизм, простой движок, ворочающий задвижку), (в системе два контура котел и потребитель) 4). В момент разогрева включать дополнительные устройства, по достижению прогрева переключать на рабочею систему. 5). При падении носителя ниже нормы отключать все системы. 6) выводить всю эту радость на обозрения.
Что я от вас хочу!? На каком камне строить, возможно, ли писать программу частями и пробовать эти фрагменты на Тини2313, если нет то почему?! Какие основные компоненты должны присутствовать, (почему именно такие) (ну чтоб я тоже знал, какие у каких преимущества)! Если возможно писать фрагментами, то в какой последовательности предпочтительней (я имею в виду по сложности, что менее сложно). А может, кто может структурную схему составить? Именно по блочно, а не схемное.
Как я вижу это. Мега8…16, датчики температуры Д18б20, дисплей Нокиа 3310. чего еще не знаю!? А структурно как должна подобная конструкция программы выглядеть?


ОтветитьЦитата
Radioded
(@sergey)
Estimable Member Admin
Присоединился: 5 лет назад
Сообщения: 184
 

Здравствуйте!
Самое первое, что приходит на ум, так это то, что писать всё таки лучше на Си, на ассемблере программа будет очень громоздкой и запутанной. Рекомендую книгу Шпака "Программирование на языке С для AVR и PIC микроконтроллеров". Притом, что есть Сишные библиотеки для дисплея от nokia 3110, для датчика DS18B20 у меня своя библиотека функций есть ;) .
На каком камне строить, возможно, ли писать программу частями и пробовать эти фрагменты на Тини2313, если нет то почему?!
Да, делать лучше на ATmega8 - памяти побольше чем у ATtiny2313.
Если возможно писать фрагментами, то в какой последовательности предпочтительней (я имею в виду по сложности, что менее сложно). А может, кто может структурную схему составить?
Последовательности и написания кода нет, это зависит от Вас, структурная схема - да, её стоит нарисовать заранее чтобы было проще придумать алгоритм работы микроконтроллера. Надо отталкиваться от принципиальной схемы и от необходимых требований работы устройства.
А может, кто может структурную схему составить? Именно по блочно, а не схемное.
На выходных смогу набросать.


ОтветитьЦитата
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Да, делать лучше на ATmega8 - памяти побольше чем у ATtiny2313.
Вы меня опять не правильно поняли. Ну, по видимому по тому, что я не совсем правильно спросил! Я прекрасно понимаю, что Тиньки не хватит, не по портам не по внутренней структуре (хоть я с ней и не знаком еще). Я имел в виду конечный вариант, на каком не будь???? а проверять и ПРОБУЮ, отладку на Тиньки. Так как готовая макетка и все построено под эксперименты.
Последовательности и написания кода нет, это зависит от Вас....
Конечно, последовательность зависит только от меня, НО на ВАШ взгляд какие фрагменты наиболее просты, я ж тока первые шаги делаю! К примеру, начитался я про Д18Б20, но вы думаете, я чего понял!? Конечно, посылаем РЕСЕТ, получаем идентификацию, посылаем запрос, получаем ответ, конечно на словах все красиво, но как на практике. Как, к примеру, знать через какое время после PRESENCE будет идти тело кода, как, к примеру, между знаками 11100100 знать, где какой бит разделений то нет? Но я рук не опускаю и добросовестно НАСИЛУЮ нЭт в поисках ответов на Очень многие вопросы!
А может, кто может структурную схему составить? Именно по блочно, а не схемное.
На выходных смогу набросать.
Ну и опять я не смог ПРАВЕЛЬНО выразить чего хочу! Здесь я хотел про ключевые звенья схемы узнать НЕ детальную схема технику, а блочную!!! Речь не идет о деталях согласования, или вещах типа, транзисторов и релюх без которых естественно я не смогу сеть коммутировать. А о таких элементах, как…. Ну может какой регистр там или таймер или еще чего!???
Си… я понимаю, что видимо проще для юзиров, но я хуже. Я ламер и программирования как таковое для меня фантастика даже притом, что какие-то шаги уже сделаны!!! И если начну и еще чего разбирать, то видимо не пойму вообще не чего!!! Нельзя две вещи делать одновременно!!!
На выходных смогу набросать. По поводу структурной схемы программы буду премного благодарен!!!
Пс.Может мне все-таки рановато за подобные конструкции браться?
Как вы считаете? Насколько это сложный агрегат?


ОтветитьЦитата
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Вдогонку! К пред, пред, идущему посту! :oops:
Важно знать не просто время, но еще и дни недели!


ОтветитьЦитата
Radioded
(@sergey)
Estimable Member Admin
Присоединился: 5 лет назад
Сообщения: 184
 

Здравствуйте!
Конечно, последовательность зависит только от меня, НО на ВАШ взгляд какие фрагменты наиболее просты, я ж тока первые шаги делаю! К примеру, начитался я про Д18Б20, но вы думаете, я чего понял!? Конечно, посылаем РЕСЕТ, получаем идентификацию, посылаем запрос, получаем ответ, конечно на словах все красиво, но как на практике. Как, к примеру, знать через какое время после PRESENCE будет идти тело кода, как, к примеру, между знаками 11100100 знать, где какой бит разделений то нет?!
Несложен фрагмент работы с термодатчиком DS18B20 - начните с него, куски кода я выкладывал на форуме, вот:
https://radioded.ru/forum/viewtopic.php?f=6&t=16 . Куча библиотек валяется на разных сайтах.
После импульса сброса следует подождать 480 микросекунд и после этого считывать импульс присутствия - "PRESENCE".
Вот моя схемка цифрового термометра - там есть исходники на ассемблере для датчиков DS18B20 и DS1820 - посмотрите их:
https://radioded.ru/index.php?option=com_content&task=view&id=19&Itemid=49 .
Но я рук не опускаю и добросовестно НАСИЛУЮ нЭт в поисках ответов на Очень многие вопросы!
Рекомендую книжки по микроконтроллерам(когда разбирался с датчиком, то помимо даташитов листал книжки), там по сути дела все изложено на понятном, а главное русском языке - но лучше даташиты ;) .
По поводу структурной схемы программы буду премного благодарен!!!
Пс.Может мне все-таки рановато за подобные конструкции браться?
Как вы считаете? Насколько это сложный агрегат?
Скажу прямо - на ассемблере будет тяжеловато, лучше конечно СИ - каждому своё, что Вам больше нравиться на том и делайте, хоть на бэйсике (видел очень достойные законченные устройства на МК с программами, написанные на бэйсике). Пишите блоками - если все блоки по отдельности заработают, то объединить их в одну программу не составит труда. Блоки: работа с термодатчиком, вывод на дисплей, работа с таймерами, работа с портами. Начинайте с малого и всё получится!!!


ОтветитьЦитата
VladislavZ
(@vladislavz)
Eminent Member
Присоединился: 15 лет назад
Сообщения: 27
Topic starter  

Здратсти ВСЕМ!!!
Дорогой радио дедушка. Я в выходные вроде сам разобрался, как происходит обмен (не понимания быль из-за того, что упустил из виду тайм-слот). Теперь не могу понять, как и в какой последовательности, командами обмениваться. Вы прислали много полезной для меня информации (за что я очень вам благодарен).
Вот моя схемка цифрового термометра - там есть исходники на ассемблере для датчиков
Я честно пытался разобраться, но не чего не понял (видимо для меня еще не тот уровень, слишком много вложений и перескоков), и что самое главное я так и не понял, как и какие команды, вы отправляете в термометр. Ну, точнее не как, а после чего? Ну, еще точнее вы каждый раз отправляете CCh, 44h и не пересылаете 0b0ХХ1_1111, то есть вы устанавливаете одно устройство CCh, разрешаете пересчет 44h, дискретность не трогаете, то есть ХХ.0625 и время пересчета 750млиС. Но почему вы после каждой программы RESET посылаете? И разве надо каждый раз говорить устройству, что он единственный, и просить посчитать? Мне так показалось, что все это пересылается один раз, и в дальнейшем только считываем температуру!?
Вы не могли бы, разъяснить сей момент?!!!


ОтветитьЦитата
Radioded
(@sergey)
Estimable Member Admin
Присоединился: 5 лет назад
Сообщения: 184
 

Здравствуйте!
Вот последовательности действий при работе с датчиком DS1820:

  • послать сигнал обнуления линии (490...960 мкс)

  • принять импульс присутствия (60...240 мкс)

  • послать команду пропуска идентификации 0xCC

  • послать команду начала преобразования 0x44

  • подождать не менее 500 мкс для завершения процесса преобразования

  • обнулить линию

  • послать команду пропуска идентификации 0xCC

  • послать команду считывания блокнота 0xBE

  • принять 9 байт (только пару первых, где находится информация о температуре)

  • обработать и вывести данные

  • То же самое для DS18B20.
    Точность выставляется, для этого есть специальный байт, его наименование я не помню.
    Могу отфоткать и скинуть вам пару страниц про термодатчики серии DS из книги.
    Но почему вы после каждой программы RESET посылаете? И разве надо каждый раз говорить устройству, что он единственный, и просить посчитать? Мне так показалось, что все это пересылается один раз, и в дальнейшем только считываем температуру!?
    Да, скорее всего вы правы, так даже будет проще. Хотя и по-моему работает.


    ОтветитьЦитата
    Ibaness
    (@ibaness)
    Active Member
    Присоединился: 15 лет назад
    Сообщения: 5
     

    Вы зря осцил подключали к XTAL1 и XTAL2. Из-за входной емкости прибора генерация может прекратиться. Да и осцил ничего не покажет... Вам правильно сказали, что проверять нужно чем-нибудь наподобие светодиодного моргала. В ponyprog при запуске обязательно нужно выполнять калибровку (где-то в опциях)


    ОтветитьЦитата
    Весна
    (@eca)
    New Member
    Присоединился: 15 лет назад
    Сообщения: 1
     

    ПОдскажите, что значит #pragma used+
    #pragma used-, сгенерированная CodeVisionAVR? внутри нее прописана функция, но зачем ее заключают между этими директивами...


    ОтветитьЦитата
    Страница 2 / 3