Реклама на сайте English version  DatasheetsDatasheets

KAZUS.RU - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Электронные книги
FAQ по электронике

  Datasheets
Поиск SMD
Он-лайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Избранные схемы
FAQ по электронике
  Программы
Каталог сайтов
Производители электроники
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы
Непрочитано 15.02.2011, 04:02  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от kison Посмотреть сообщение
Скачайте программу и посмотрите. Я описываю не отсебятину, а то что там вижу.
А ещё переключение датчика пакетником.
Отлаживается файл "1-wire_timer.asm" Там отработка 1-wire. Индикация сделана для Proteus-а. Никто так делать в устройстве не будет.

Тяжелая артиллерия либо зачиталась, либо давно спит. Последнее сообщение от них было 2,5 часа назад. Время 3 1/6 ночи. Давайте и мы их догонять - в 6 подъём...
Реклама:

Последний раз редактировалось omercury; 15.02.2011 в 04:13.
omercury вне форума  
Непрочитано 15.02.2011, 04:15  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от omercury Посмотреть сообщение
Индикация сделана для Proteus-а. Никто так делать в устройстве не будет.
Я ее вообще не смотрел. Я смотрел вектора - есть они кроме таймера шины или нет. Их быть не должно. Либо берите стандартный способ - системный таймер например на 1 миллисекунду и по нему в основном цикле таймслоты шины. Для точных таймслотов нужно обернуть их часть критическими секциями, то бишь запретом/разрешением прерываний. Обычно достаточно только части таймслота в 15мкс быть в критической секции. Это немного. Можете системный таймер сделать пошустрей, например 500мкс. Вариантов масса. А вместо смешного перетасовывания адресов на стеке заведите таблицу переходов и индекс - укзатель на следующий переход. Не надо будет стек перетасовывать. Тем более что все равно храните адрес, а так байта хватит. Но ИМХО это все баловство - выигрыша никакого, а гемороя много.
Не забудьте - всю эту хрень нужно еще отлаживать. Причем и в "боевом" режиме. Сварочник вещь такая - взглюкнул его мозг и два IGBT рублей по 300 в помойку. Хорошо что рублей,у нас модули по 200$ вылетали Я очень хорошо знаком с особенностями запуска силовой электроники. А мой друг, коллега и бывший начальник даже книгу написал. Она одна из самых популярных по этой теме в сети - Силовая электроника для любителей и профессионалов.
kison вне форума  
Сказали "Спасибо" kison
omercury (15.02.2011)
Непрочитано 15.02.2011, 09:53  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от kison Посмотреть сообщение
А вместо смешного перетасовывания адресов на стеке заведите таблицу переходов и индекс - укзатель на следующий переход
Мысль хорошая. Сам не придумал, спасибо.
Сообщение от kison Посмотреть сообщение
Сварочник вещь такая - взглюкнул его мозг и два IGBT рублей по 300 в помойку.
Не, там не настолько всё плохо. ШИМ управления IGBT внешний аппаратный. В этом даже убеждать не пришлось. Разведено аппаратное управление и прочие фишечки.

Вы-то, кстати, как? В 3 с минутами здесь, сейчас тоже. Вроде ещё до белых ночей далеко...
omercury вне форума  
Непрочитано 15.02.2011, 10:40  
kison
Почётный гражданин KAZUS.RU
 
Регистрация: 13.12.2004
Сообщений: 3,172
Сказал спасибо: 11
Сказали Спасибо 692 раз(а) в 504 сообщении(ях)
kison на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Я никогда не сплю Не всегда когда я есть я на самом деле есть. Просто бывает стоит в опере обновлять страницу Я так могу неделю безвылазно на каком нибудь форуме присутствовать
kison вне форума  
Непрочитано 15.02.2011, 12:29  
Андрей К
Почётный гражданин KAZUS.RU
 
Аватар для Андрей К
 
Регистрация: 10.11.2009
Адрес: Свердловская область, г. Ирбит
Сообщений: 4,003
Сказал спасибо: 165
Сказали Спасибо 1,243 раз(а) в 733 сообщении(ях)
Андрей К на пути к лучшему
Радость Re: Atmel - в цинковый ящик?!!!

Сообщение от kison Посмотреть сообщение
Я никогда не сплю Не всегда когда я есть я на самом деле есть. Просто бывает стоит в опере обновлять страницу Я так могу неделю безвылазно на каком нибудь форуме присутствовать
Да уж, kison, не бережёте вы себя, отдохнуть Вам надо . Я с самого первого поста прослеживаю эту ветку. Я не проектировщик, а просто монтажник, и иногда тоже читая эту ветку просто отдыхаю. А вот тема реально Атмелем то уже и не пахнет, я смотрю тут уже начали и свои проекты обсуждать.
__________________
"У принца Лимона всё наоборот: воры и убийцы у него во дворце, а в тюрьме сидят честные граждане" (с) Дж. Родари "Приключения Чипполино"
Андрей К вне форума  
Непрочитано 15.02.2011, 13:09  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от Андрей К Посмотреть сообщение
Атмелем то уже и не пахнет, я смотрю тут уже начали и свои проекты обсуждать.
Отчего Вы так решили? Проект на Атмеле. И ещё на ассемблере. Похоже неплохое снотворное получилось - никого.

Если интересно - могу ещё подкинуть. Правда уже не такой снотворный. Да и тот далеко не доделан, поэтому вполне читабелен. "Генетическая модификация" затронула только начало файла...
omercury вне форума  
Непрочитано 15.02.2011, 13:09  
Someone
Гражданин KAZUS.RU
 
Регистрация: 16.06.2005
Сообщений: 945
Сказал спасибо: 25
Сказали Спасибо 175 раз(а) в 124 сообщении(ях)
Someone на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от omercury Посмотреть сообщение
Нука-нука! Как это оно в 8-битнике 16-битную инструкцию без учета флага перноса сделает? (без индексов - в t15 он всего один)
Под срс я ввиду последнюю команду, т.е. что код наодну команду меньше и на такт быстрее, неточно выразился. kison привел пример - две арифметические операции и условный переход:
Цитата:
+00000040: 528C SUBI R24,0x2C Subtract immediate
+00000041: 4091 SBCI R25,0x01 Subtract immediate with carry
+00000042: F008 BRCS PC+0x02 Branch if carry set
Да, компилятор яву не всегда делает так, ведь это будет правильно работать при определенных условиях, но компилятор всегда может отследить возникновение подобных условий, и если надо пользователю (по настройкам компиляции), он будет в этом случае оптимизировать. В данном конкретном случае, скорее всего компилятор знает, что регистр, содержимое которого он испортит, далее не будет использоваться нигде до прямой загрузки в него другого числа или регистра. В результате экономит один байт и один такт. Конечно, человек тоже может отслеживать такие ситуации и на асме так же оптимизировать, но любому имхо понятно, что этим надо специально заниматься, в голове надо держать и моделировать работу большого объема кода, это будет нудно, долго, и очень трудоёмко.


Цитата:
А вот этого действительно не знал. обычно просто не поддерживаются. Имя назовёте?
Ага. Обычно не поддерживается . Но по сути тини15 по объему флэша не отличается от тини 13, который поддерживается всеми. Отсюда следует вывод, что объем памяти 1к - не припятствие для компилятора С. Далее, С компилятор, даже при наличии ОЗУ, все равно размещает некоторое число переменных в регистрах (кстати, можно компилятору даже указать в какой регистр/пару установить какую переменную), что легко можно отследить из листинга. Т.е. получается, что никаких принципиальных препятствий для компилятора в работе с тини15 нет. В случае компилятора ImageCraft все еще проще - там можно установить "custom" контроллер, т.е. вручную забить объем флэши, епрома и озу. Объем озу можно указать 0, и тогда этот компилер будет использовать под переменные только регистры. Конечно максимально возможное число переменых не будет равно числу регистров, ведь компилеру регистры понадобятся для промежуточных операций, но это так же справедливо и для асма. Остается одна неприятность - любой компилятор вставляет некий стартап код, который инициализирует стек переменных, аппаратный стек, зануляет память переменных, и т.п. Очевидно, что при наличии аппаратного стека его не требуется настраивать. Без наличия озу нету стека переменных. Кроме того, в случае малого количества флэша тратить память на бесполезные команды зануления - глупо. Однако компилятор (я по крайней мере видел это в иаре, гцц и имагекрафте, за кодевижн не скажу, никогда не пользовался) позволяет написать и использовать свой стартап. В свое время, в начале изучения программирования микроконтроллеров, я был молод, переполнен творческой энергией, сексуально активен , и проделав вышеописанное, получил поддержку отсутствующего тини15 в списке поддерживаемых контроллеров в имагекрафте 6.31. На что мой начальник, кстати, старый ассемблерщик, справедливо заметил: "Месье понимает толк в извращениях . И за то то время, пока ты разбирался со всем этим, ты мог бы написать 4-5 прог для этого тини на асме."


Цитата:
Правда сомневаюсь, что в регистрах устройств, но это уже шаманство.
Так и в асме компилятор ассемблера сам не будет размещать переменные в системных регистрах контроллера, размещать их там и специфически с ними работать (всеж таки команды ин и оут предназначены для работы с портами) будет программист. И делается это одинаково, что на С, что на асме.

Сообщение от Bill Посмотреть сообщение
Тут другая проблема. Если нет ОЗУ, то стек тоже будет отсутствовать. А без стека и подпрограмму не вызвать, и прерывания не разрешить.
Если нет озу, в случае конкретно тини15 есть 3х-уровневый аппаратный стек. Так что можно. Ну в контроллере, где нет аппаратного стека, надо просто писать программу в соответствии с этим. Без подпрограмм и прерываний. Но даже в 14 пике был аппаратный стек, если меня память не подводит - давненько с микрочипом не работал.
Someone вне форума  
Непрочитано 15.02.2011, 13:27  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от Someone Посмотреть сообщение
Если нет озу, в случае конкретно тини15 есть 3х-уровневый аппаратный стек. Так что можно. Ну в контроллере, где нет аппаратного стека, надо просто писать программу в соответствии с этим. Без подпрограмм и прерываний.
Это понятно, когда сам на ассемблере пишешь. А кот компилятор как будет действовать?
Bill вне форума  
Непрочитано 15.02.2011, 13:30  
omercury
Почётный гражданин KAZUS.RU
 
Аватар для omercury
 
Регистрация: 25.05.2010
Адрес: г. Королёв
Сообщений: 8,497
Сказал спасибо: 30
Сказали Спасибо 3,072 раз(а) в 2,013 сообщении(ях)
omercury на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от Someone Посмотреть сообщение
Цитата:
+00000040: 528C SUBI R24,0x2C Subtract immediate
+00000041: 4091 SBCI R25,0x01 Subtract immediate with carry
+00000042: F008 BRCS PC+0x02 Branch if carry set
Да, компилятор яву не всегда делает так, ведь это будет правильно работать при определенных условиях, но компилятор всегда может отследить возникновение подобных условий, и если надо пользователю (по настройкам компиляции), он будет в этом случае оптимизировать. В данном конкретном случае, скорее всего компилятор знает, что регистр, содержимое которого он испортит, далее не будет использоваться нигде до прямой загрузки в него другого числа или регистра.
Неправильно. В данном случае сравнение некорректно(причём в мою пользу). В регистры надо сначала загрузить данные или сохранить их где-то. В той программе, откуда код был выдран, эти данные ещё используются, поэтому убить я их не могу. Про определённые условия согласен - данный МК не поддерживает 16-битных инструкций...
Если есть прерывания - значит стек однозначно есть, хоть на 1 адрес.

Сообщение от Bill Посмотреть сообщение
А кот компилятор как будет действовать?
Как правило это известно только авторам компилятора - да и то не спросишь. Пока с компилятором не побадаешься не поймёшь.

Сообщение от Someone Посмотреть сообщение
Так и в асме компилятор ассемблера сам не будет р
Не бывает компиляторов асма - нечего там компилировать. Всё уже написано на языке МК, только понятными программисту буквами.

схожу пообедать...

Последний раз редактировалось omercury; 15.02.2011 в 13:34.
omercury вне форума  
Сказали "Спасибо" omercury
pinco (22.02.2011)
Непрочитано 15.02.2011, 13:37  
Bill
Гражданин KAZUS.RU
 
Регистрация: 02.06.2003
Адрес: Челябинск
Сообщений: 545
Сказал спасибо: 10
Сказали Спасибо 341 раз(а) в 202 сообщении(ях)
Bill на пути к лучшему
По умолчанию Re: Atmel - в цинковый ящик?!!!

Сообщение от omercury Посмотреть сообщение
Как правило это известно только авторам компилятора - да и то не спросишь. Пока с компилятором не побадаешься не поймёшь.
Да нет. Если контроллер есть в списке поддерживаемых, то все нормально. Кстати, IAR tiny15 поддерживает. Но я бы для этого контроллера все равно бы ассемблер использовал.
Bill вне форума  
 

Закладки
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[Решено] Elenberg MX-339. Черный ящик или как поставить USB Electric75 Аудиотехника 4 18.02.2011 12:00
Atmel, Microchip и Криптография skayt29 Микроконтроллеры, АЦП, память и т.д 13 04.07.2010 16:45


Часовой пояс GMT +4, время: 09:20.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot