Post:#249920 Date:07.06.2010 (20:24) ... Хочу завести себе свою ветку, чтобы не распыляться. Идей много, а на проверку времени мало. Вот захотелось проверять все вечняки в математике, а потом смотреть где ошибка закралась. Если есть интересующие - присоеденяйтесь.
Обсуждаться будет только один ЧЁРТЁЖ или ЭКСКИЗ единовременно. Пока один агрегат не будет расколупан до конца, дальше ни-ни. Если нет возможности рисовать - сам потом нарисую или картинку вставлю. Весь словесный понос подтверждать оффициальными ссылками. Ссылка на дурдомопедию (википедию) в крайнем случае давать. На сайтах производителей и институтов инфы хватает. Всяких дибилов самоназваных с Ахрененными межгалактическими дипломами не приводить в пример.
Надеюсь энергия потом с кондёра не порёт, и ахренесово колесо вечно не поедет - наука штука точная. КПД устройства для взлома искать больше 20% (КПД1,2).
Нельзя взламывать секреты приборов производимых на постсоветском пространстве. Ибо тут всё просто - турма (Поддержим отечественного производителя!). А заграничные стандарта ISO для нас практически недосягаемы, мы со своим ГОСТОМ на рынке условия не диктуем. Поэтому взлом иностранной технологии в нашей "Раше" приравнивается к шлепку буржую по заду - только щёчки порозовеют . Наши технологии "ломать" только с разрешения собственника либо если инфа открыта для пользования.
Ламачче невозможное проверить при помощи формул теоретически либо элементарно практически также не выкладывать.
Расшифровка предупреждений:
ПИП - первое израильское предупреждение;
ВИП - второе израильское предупреждение;
ТрИП - третье израильское предупреждение;
ЧИП - вставляем имплантант биоботу;
ППЦ - биоботу пипец.
Есть такой вариант- в простеньких ЭБУ для впрысковых движков - зашивают таблицу
исходя из замеров на стендовом движке.
Но в реалии все движки разные, со временем изнашиваются, и народ все время
задается вопросом- а почему я плачу больше за инжектор, а экономии по сравнению
с карбом никакой. Это именно от таблиц.
Например для мощного движка подключенного к розетке.
Надо его плавно раскрутить. Понятно что напряжение будет просаживаться,
его можно учесть в таблице, а если еще сосед включил в это время калорифер?
Это как учесть?
Проще мерять и рассчитывать. Это конечно с современными мкашками.
Диду, а если в студио пользоваться только ограниченными командами под пикушки, то потом асемблер на пик пойдёт?
Eduard | Post: 289017 - Date: 12.02.11
В асме в этом случае ничего не надо писать, потому что регистры под рукой в любой момент, просто инициализируем и юзаем:
MOV R1, #0
INC R1
Но не забываем, что если мы потрогаем этот регистр в другом месте программы, то его значение испортится.
Чёт не догоняю . Данные у меня в пикушке на 8 бит, значит R1 будет 8 бит как байт ориентированая команда, а откуда тогда это эр берётся? Или это переменная какая? Вот у меня под носом "карта памяти данных микроконтроллера PIC16F876", в ней память почему-то обозвана регистрами. Вот к примеру есть FSR 04h? TMR2 11h, как они записываются и что значит их шестнадцатеричное число. Вызов памяти происходит по названию или по адресу? Так ещё же дофига адресов без имён, че с ними делать?
Теперь конкретно на примерах, напишу от балды пример, тыкните где я мудак.
Programma; aein, zvein, drein - elocchka gori!!!
MOV PORT B, 00000000; записываем в порт Б нули
MOV PORT B, 00000001; записываем в порт Б еденицу
Так будет работать ?
_________________ Не хватит никакого здоровья, чтобы приспособиться к этому глубоко больному обществу(Кришна Мурти)/Горшки не Боги обжигают (многовековая классика)
Так! Врде понял. Значит память с буковками вообще трогать нельзя, можно только считывать. А регистры общего назначения можно по прямой адресации записывать и перезаписывать? И ещё. Есть там несколько типов памяти ФЛАШ - 8к и ЕПРОМ - 256байт. У флаш памяти 1000 циклов перезаписи, а у епром 100000. Вот меня мучает вопрос, значит на ФЛАШ память записываются константы и программа, а епром для временных данных? И не понимают что значит 100000. Если буду использовать один бит для постоянной перезаписи в цикле на большой частоте то она у меня в конечном счёте собьётся?
_________________ Не хватит никакого здоровья, чтобы приспособиться к этому глубоко больному обществу(Кришна Мурти)/Горшки не Боги обжигают (многовековая классика)
Обязательно собьется.
Поэтому обычно такую память используют редко- например в телике
для записи канала и громкости при выключении. Чтоб при включении попал опять туда и не очень тихо было..
bazarov Пост: 289056 От 12.Feb.2011 (16:24)
Programma; aein, zvein, drein - elocchka gori!!!
MOV PORT B, 00000000; записываем в порт Б нули
MOV PORT B, 00000001; записываем в порт Б еденицу
Так будет работать ?
Не всегда.
В атмелях в те регистры- порты которые на выход наружу- команда OUT
И переносится из внутреннего регистра общего назначения.
Для тебя как железячника долно быть понятно что это просто разные
цепи на запись в те и другие регистры.
Поэтому для проца- это просто единичка в команде в другом месте.
Поэтому правильно будет
LDI R16,00000000 ; ЗАПИСЫВАЕМ СНАЧАЛА ЧИСЛО В РЕГИСТР
OUT PORT B, R16
INC R16 ; УВЕЛИЧИВАЕМ НА ЕДИНИЧКУ
OUT PORT B, R16
Разрядность регистров и памяти - смотри в доке для своего проца. Также бывают команды, работающие с одним байтом, бывает с двумя сразу, бывают и с цепочками байтов.
Регистры специальных функций - это такие регистры, запись в которые приводит к изменениям в работе начинки проца. Это указатель стека, таймеры, режимы работы портов, регистр разрешения прерываний и т.п. Поэтому при их использовании надо четко представлять, на что они влияют. Разумеется, их нельзя использовать для хранения пользовательских данных. Для нужд программиста есть регистры общего назначения, в них можно хранить свои числа и менять их как угодно.
Организация внутренней памяти может быть разная. Как это выглядит с точки зрения процессора (и программиста), зависит от реализации конкретного чипа. Часть памяти может быть обозвана регистрами, но если набор инструкций для работы с ними тот же, что и для памяти, то разницы нет никакой. А если есть команды для работы с регистрами, и отдельно команды для работы с памятью, то тогда появляется разница в использовании. Выражается это в длине кода и времени отработки команды. Если в ПИКе команды универсальные, то и заморачиваться не о чем.
> Так ещё же дофига адресов без имён, че с ними делать?
Присваивать им свои имена и хранить там свои данные.
> MOV PORT B, 00000000; записываем в порт Б нули
> MOV PORT B, 00000001; записываем в порт Б еденицу
Если есть осциллограф, то лучше начинать именно с этой программы. И в конце должна быть команда перехода в начало, иначе программа пройдет выполняться дальше, и если там "мусор", то начнет выполняться "мусор" .
Флэш для хранения твоего кода программы. 1000 циклов - это "ВО". Максимум у меня для отладки нужно раз 10-15 переставить чип из девайса в программатор и обратно. Если больше, то значит уже обленился вконец и пишешь программу методом тыка - "вот так еще не попробовал, может заработает". Вспомним, когда-то надо было стирать ПЗУ-шку под ультрафиолетом 15 минут, и всего 50 или 100 циклов обещали - не сильно-то поотлаживаешь. А сидели и писали, тщательно анализировали, и прошивали - как праздник урожая.
ЕЕпром да, действительно, 100 тыс. циклов, - и амба, дырку протер. Поэтому нужно использовать очень экономно. Хранить там настройки пользователя. Или запоминать состояние на момент аварийного отрубания питания.
PS. Ага, понял, что тебя смущает. У некоторых регистров есть имена, а у некоторых нету. Но сам процессор не знает никаких имен, знает только числовые адреса. Имена знает ассемблер. Значит, у ассемблера есть таблица соответствия имен и их адресов. У меня такая таблица подгружается в виде файла, для каждого процессора своя.
_________________ И мню аз яко то имать быть, что сам себе всяк может учить.
У меня такое очучение что в детский садик мне пора .....
dedivan | Post: 289068 - Date: 12.02.11
Поэтому правильно будет
LDI R16,00000000 ; ЗАПИСЫВАЕМ СНАЧАЛА ЧИСЛО В РЕГИСТР
OUT PORT B, R16
INC R16 ; УВЕЛИЧИВАЕМ НА ЕДИНИЧКУ
OUT PORT B, R16
Таааакс... Значит LDI в АТмал озночает что и MOVWF, xxh; только не понял что такое R16? И разве бывают регистры с адресом оооооооо? Вот я вижу в архитектуре только свободный внутренний регистр W. Если с регистра W поместить данные в АЛУ, то появится возможность временно пользоваться другими данными, потом прибавляем к биту в АЛУ нуль и в регистре W появится наше первоначальное число, так? Ещё получается что бит инфы напрямую можно пересылать на порт из ОЗУ регистра W, регистров общего назначения и памяти? ???
Eduard | Post: 289069 - Date: 12.02.11
Если есть осциллограф, то лучше начинать именно с этой программы. И в конце должна быть команда перехода в начало, иначе программа пройдет выполняться дальше, и если там "мусор", то начнет выполняться "мусор" .
Такс. Значит сделав два временных банка памяти "регистры в ЕПРОМ" можно сделать космическую надёжность хранения данных памяти?
Зырим.
В памяти программы было несколько переменных записаных в память как:
MOVWF, x1h, ххх; Значение №1
MOVWF, x2h, ххх; Значение №2
MOVWF, x3h, ххх; Значение №3
; второй банк памяти настроек пользователя
MOVWF, 11h, ххх; Значение №1
MOVWF, 12h, ххх; Значение №2
MOVWF, 13h, ххх; Значение №3
И ещё один регистр состояния записи ещё одного резервного хранилища:
MOVWF, ааh; Значение очерёдности записи; здесь просто записывается нуль или еденица
Тогда следующие данные будут записываться по условию:
if ааh>1 to load (x1h,x2h,x3h,); первое условие записи или чтения временных настроек пользователя
else load (11h,12h,13h,); условие чтения второго банка памяти
Тогда при каждой записи будет проверяться условие:
if ааh>1 to save
MOVWF, 11h, ххх; Значение №1
MOVWF, 12h, ххх; Значение №2
MOVWF, 13h, ххх; Значение №3
else save
MOVWF, x1h, ххх; Значение №1
MOVWF, x2h, ххх; Значение №2
MOVWF, x3h, ххх; Значение №3
if ааh>1 to save
MOVWF, aah, ххх; Значение выбора памяти (нуль или еденица)
else MOVWF, aah, ххх; Значение выбора памяти (нуль или еденица) антипод
goto-ва
Если ещё придумать чтобы значения адресов с каждым циклом записи увеличивались на еденицу и пустить по кругу всей памяти, то препрограммирования ЕЕМПРОМ на полёт на Марс хватит .
Хде я ошибок понаделал ?
_________________ Не хватит никакого здоровья, чтобы приспособиться к этому глубоко больному обществу(Кришна Мурти)/Горшки не Боги обжигают (многовековая классика)
Оставь ЕЕпром в покое, он тебе еще сто лет не понадобится. Тебе сейчас надо составить простейшую программу, которая хоть что-то делает. Потом научиться ее компилировать без ошибок. Потом результат заливать в процессор. Подавать питание, сброс, и смотреть, как она работает. Или не работает.
Насчет ЕЕпром. Вот я делал регулятор для паяльника. При выключении питания он запоминает текущую мощность и записывает в флэш типа X24C01. В первом экземпляре я сделал запись всегда в одну и ту же ячейку. Когда она протрется, я вытащу процессор и перекомпилирую программу на вторую ячейку . Во второй версии я захотел, чтобы запомненные данные записывались всегда на новое место, чтобы сэкономить флэшку. Но ведь это "новое место" тоже надо где-то запоминать каждый раз, значит, оно протрется так же быстро, и эта смена адреса не даст увеличения продолжительности жизни ЕЕпрома. Тогда я сделал так: при включении процессор считывает всю флэш память и складывает. Получаемая сумма указывает на место, где лежат последние данные. Самое интересное, это как сделать так, чтобы при выключении записать такие данные в текущий блок, чтобы при очередном сложении всей памяти получился указатель на следующий блок. Я это сделал
_________________ И мню аз яко то имать быть, что сам себе всяк может учить.
Самое интересное, это как сделать так, чтобы при выключении записать такие данные в текущий блок, чтобы при очередном сложении всей памяти получился указатель на следующий блок. Я это сделал
Лехко . Сам процессор запитать от 1000 мк через диод по питанию, а на вход визор напруги поставить. тогда при пропадании питания за пару миллисекунд данные о состоянии запишутся
Меня тут торкнуло ещё одно. По своей деятельности вижу как процы в аппаратах глючат, и нехило. Встроенная батарея не всегда заряжается "бережливыми" работниками, поэтому мигания в сети иногда вызывают свбои, хоть это и редко бывает, но есть. Мысль проста. При работе контроллера должна быть лапка с определённой частотой, затем частота будет идти на фильтр-мост, на котором будет стоять визор по сбросу питания контроллера при неправильной работе. Не уверен я что внутри контроллера есть опорный тактовый генератор .
_________________ Не хватит никакого здоровья, чтобы приспособиться к этому глубоко больному обществу(Кришна Мурти)/Горшки не Боги обжигают (многовековая классика)
Базарыч, велосипед изобретаешь. Все это уже есть в котроллерах.
Не древних конечно.
И отдельный генератор с отдельным счетчиком, с отдельным сбросом,
если программа работает правильно- то в ней всегда есть участок , который сбрасывает этот счетчик, а если зависла, то счетчик сбрасывает контроллер.
Самое интересное, это как сделать так, чтобы при выключении записать такие данные в текущий блок, чтобы при очередном сложении всей памяти получился указатель на следующий блок. Я это сделал
Лехко . Сам процессор запитать от 1000 мк через диод по питанию, а на вход визор напруги поставить. тогда при пропадании питания за пару миллисекунд данные о состоянии запишутся
Базаров, ты как всегда, невнимательно читаешь, а я слов на ветер не бросаю. Пропадает желание объяснять тебе что-либо.
Схемотехнически - понятно, кондер. Идея - писать флэшку экономно, каждый раз по новому адресу. Ты мне расскажи, ГДЕ ты будешь хранить этот самый адрес? В той же самой флэшке? И пепрезаписывать его КАЖДЫЙ РАЗ? Тогда хранилища этого адреса тоже хватит всего на 100 тыс. циклов. Вот и думай.
_________________ И мню аз яко то имать быть, что сам себе всяк может учить.
Eduard Пост: 289264 От 14.Feb.2011 (01:53)
ГДЕ ты будешь хранить этот самый адрес? В той же самой флэшке?
Эд, смотри какую штуку буржуи делают на твоем любимом 52 ядре.
Обрати внимание - в роме загрузчик и юсб драйвер, а код загружают
в рэм. грузи сколько хочешь, не забудь только батарейку на 10 лет поставить.
И купить можно по смешной цене на плате со всеми причандалами и еще парой проциков впридачу как отладочный комплект.
Глупости импортные. Вспоминаем как многофазные трансформаторы работают, там встречные фазы не мешают друг дружке.
_________________ Не хватит никакого здоровья, чтобы приспособиться к этому глубоко больному обществу(Кришна Мурти)/Горшки не Боги обжигают (многовековая классика)