andy8mm Пост: 297408 От 26.Mar.2011 (15:33) ДедИван, да, пора наступить на мк-грабли.
Надеюсь подключатся спецы по контроллерам, живее будет и всем интереснее.
Давайте отделим котлеты от мух.
По контроллеру все сюда.
bazarov Пост: 298069 От 29.Mar.2011 (02:25)
когда до программы на асме дойдёте подробней пишите,
Не, бульбаш, ты не понимаешь всю выгоду своего положения. Ассемблер - это потом, само собой придет, как разговаривать научишься.
Сначала надо решить- что ты хочешь сказать.
Вот тут у тебя преимущество перед просто программером- ты электронщик. Поэтому знаешь кое что , что они не знают.
Счас я тебе покажу одну конфетку, запрятанную в таракана.
Для начала про память. Контроллер это маленькая ЭВМ , у которой есть память программ, которую прошивают перед работой,
и она хранит эту программу до следующей перепрошивки, а то и всю свою кремневую жисть.
Кроме этой крепкой памяти есть временная, рабочая ОЗУ , которая работает пока есть питание.
Вот эта ОЗУ построена у наших контроллеров очень интересно.
Она не вся одинакова . каждая ячейка- адрес это 8 разрядный регистр.
С нулевого и по 31 й адрес ячейки доступны арифметическому устройству напрямую, оно может там складывать, вычитать,сдвигать
проверять логически , просто хранить.
С 96 и выше - просто ячейки памяти для хранения. Там ничего с данными не делается. Просто хранятся.
А вот с 32й (или 0х0020 шестнадцетирично) и до 96 (0х0060) ячейки интересные.
Вроде те же самые регистры - 8 триггеров ,в них так же можно писать и читать, но они живые. То есть
что то могут делать сами.
Например по адресу 0х52 расположен таймер. Вроде обычный регистр - его можно записать , прочитать,
но это сложная и интересная штука из сотен триггеров, такую паять замучаешься год.
А тут все готово. Сишные Программеры вообще не знают что это такое- дали команду delay и даже не знают кто ее выполняет.
А ты как электронщик должен видеть все возможности аппарата.
Там можно много всяких интересных вещей с ним делать. Причем ничего не паяя и неперепаивая.
Вот смотри сколько там всего наворочено.
Сам таймер- это счетчик и туда может считать и обратно , на вход можно подать импульсы с внутреннего генератора,
а можно внешний сигнал подать, можно сбросить его, можно установить в любое состояние, можно прочитать -
сколько он сейчас насчитал. Так построены все простые таймеры.
Наш еще круче- у него есть еще регистры сравнения , то есть мы получаем сигнал не только когда таймер
досчитает до конца, но и любые два промежуточных значения от 0 до 255.
Эти регистры сравнения тоже в адресном пространстве ОЗУ, тоже имеют адреса, и запись в них производится как и во все другие.
Кроме этого есть регистры управления- они отличаются тем, что выходы их триггеров управляют сигналами поступающими
на таймер и выходящими с таймера.
Через эти регистры мы управляем- откуда сигнал пойдет на таймер, сбросом, куда выходы пойдут.
от смотри для примера - чем мы можем управлять на входе.
Есть мультиплексор на восемь входов- входы выбираются сигналами CSO0-CSO2 которые записаны в регистр управления.
Можем выбрать -0 - ничего , таймер стоит, можно сигнал с тактового генератора от которого работает весь контроллер,
например 8 мгц, можно его же но поделенный на 8,64,256,1024 а можно с внешнего входа Т0 , причем выбрать прямой
или инвертированный.
Теперь ты понимаешь что можно легко сделать на этом таймере и частотомер, или измеритель оборотов, или интегрирующий
вольтметр а мы будем делать на нем генератор.
Нам нужен такой генератор- 5 мкс выдает единичку - для включения полевика , и 25 мкс пауза - нолик.
Вот здесь начинается ассемблер- а попросту мы записываем в регистры управления нужные биты,
и дальше таймер работает сам.
Процессор при этом высвобождается и может заниматься другими делами, например запустить еще второй таймер,
или АЦП, или поболтать по каналу связи с соседом, или спать лечь.
Все команды простые. Одна тонкость- процессор напрямую работает только с первыми 32 регистрами.
В них напрямую можно записать любое число, а в другие регистры, в том числе наши можно только пересылать
из этих рабочих регистров общего назначения - РОН, так же и обратно- читаем .
Вот это и делает эта программа.
Генератор процессора устанавливаем в 8 Мгц, это делаем при прошивке фьюзов, это отдельная память - несколько регистров.
Получаем один такт = 0,125 мкс.
Вот эти такты и подаем на счетчик -устанавливая определенные биты в регистре управления.
Теперь считаем сколько тактов нужно для получения наших времён- для 30 мкс нам нужно 240 тактов или F0 шестнадцатеричное.
5 мкс = 40 тактов или 28 hex.
Эти цифры и записываем в регистры сравнения. Регистр А определяет до скольки максимум будет считать счетчик,
а регистр В после какого импульса убрать единичку на выходе.
Счетчик досчитывает до максимума, сбрасывается в ноль и начинает все сначала.
Все пересылки делаем через РОН R16 обозвали его "tm"
Вот и вся схема- проще не бывает.
Кстати тиньки хорошо работают и при 7 вольтах питания.
Это нам нужно выходной импульс 7 вольт- для раскачки полевиков, чтобы не городить еще усилители вдобавок.
dedivan | Post: 298936 - Date: 31.03.11
Не, бульбаш, ты не понимаешь всю выгоду своего положения. Ассемблер - это потом, само собой придет, как разговаривать научишься.
Сначала надо решить- что ты хочешь сказать.
Деда, стыдно мне разговаривать на првильном неломаном языке, зачем мне казаться умнее чем есть на самом деле ? Ну а за абривиатуры по электронике извиняюсь, просто годами она постоянно используется для ускорения разговора. Проще писать ШИМ чем расписывать, знающие поймут а незнающие догадаются.
За тщательное описание спасибо, буду внимательно следить за ходом событий .
_________________ Не хватит никакого здоровья, чтобы приспособиться к этому глубоко больному обществу(Кришна Мурти)/Горшки не Боги обжигают (многовековая классика)
ЧТО ЭТО ЗА ПЛАМЯ ИЗ ТРУБ У НЕГО ???
что это там "сгорает" ?
...не ответишь с первой попытки - упадешь в моих глазах до "уровня плинтуса"...
вопрос не совсем понятен.
Да хватит юлить ! так и скажи , как мужик - ЧЕСТНО: НЕ ЗНАЮ!
садись - ДВА !
...больше ты мне не интересен вообще - наездник хренов ...
ВСЕ ТАМ ПОНЯТНО ЧТО ГОРИТ !!!
...и даже по цвету пламени нетрудно догадаться...
Моему сыну 22 года, в отличие от тебя он с детства "болеет" драгстерами и гонками настоящих американских машин(а не перделок имени японии) на 402 метра.
ТО ЧТО ТЫ ВИДИШЬ ИЗ ТРУБ - ЭТО ГОРИТ ВОДА !!! Да-да !!! ТА САМАЯ ВОДА ЧТО СОДЕРЖИТСЯ В ВОЗДУХЕ !!!
Присмотрись к фото - я незря эти два выбрал - там ОЧЕНЬ хорошо видно что это "не остатки продуктов сгорания" горят... А "зажигает" ее тот самый ионизированный высокотепрературный газ, который выбрасывается из мотора! Так вот если бы ты ВНИМАТЕЛЬНО читал что пишет ДедИван - то знал-бы что ВОДА==ТОПЛИВО !!! и поджечь ее можно "наноимпульсной искрой", над производством которой тут и бьются ПРАКТИКИ!
dedivan Пост: 298942 От 01.Apr.2011 (01:09)
Вот и вся схема- проще не бывает.
Кстати тиньки хорошо работают и при 7 вольтах питания.
Это нам нужно выходной импульс 7 вольт- для раскачки полевиков, чтобы не городить еще усилители вдобавок.
не соглашусь...
надо городить схему сложнее немного - т.е. использовать промежуточный каскад после тиньки или Атмеги - чтобы управлять затвором полевика от 12В а лучше 15В - при повышенном напряжении полевики четче открываются и закрываются, а это очень важно как для уменьшения нагрева так и для получения нужной "крутизны фронтов".
AlexSoroka Пост: 298965 От 01.Apr.2011 (09:54) садись - ДВА !
Алекс, не шуми, и так всем видно что Джамшут .
Но таксист то может хороший из него. Все улицы знает.
Услышал слово контроллер- вот и поделился детской радостью
что ему бесплатно вместе с мафынкой дали.