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

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

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

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

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

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


 
Опции темы
Непрочитано 18.04.2009, 19:34  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию

Сообщение от andries5
Может не в тему, но для лучшего понимания AVR,
я решил написать генератор начальног кода под WINAVR.
Вот уже больше месяца не вылезаю из даташитов.
Возможно зря, но правда стал понимать логику работы.
Если бы писал на CVAVR разные задачи, видимо было бы
лучше. Но генератор закончу.
В даташиты приходится постоянно заглядывать, куда без них деться, на чем бы не писал программу. Язык высокого уровня освобождает от рутины. Не все ли равно на каком языке ты задаешь тот или иной режим МК или выводишь биты на порт.
Реклама:
IOPA4 вне форума  
Непрочитано 18.04.2009, 19:45  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию

Например я пишу:
Код:
delay_us(5);
CVAVR переводит:
Код:
	.MACRO __DELAY_USB
	LDI  R24,LOW(@0)
__DELAY_USB_LOOP:
	DEC  R24
	BRNE __DELAY_USB_LOOP
	.ENDM
Что к этому можно добавить?
IOPA4 вне форума  
Непрочитано 18.04.2009, 21:24  
sva-don
Частый гость
 
Регистрация: 12.08.2007
Адрес: Ростов-на-Дону
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sva-don на пути к лучшему
По умолчанию

Сообщение от IOPA4
Асмом баловался в период Синклара. Нужно было быстродействие, т.к. машинка слабая (например писал светомузыку и Питона тоже ) Бейсик тоже мне нравился. Для него были компиляторы, для перевода в ЕХЕ. Делал машинные вставки, где нужно быстродействие. Но учтите мой возраст и наличие времени, сейчас я даже не могу представить, что я буду сидеть с калькулятором и вычислять адреса переходов и куда какой бит поставить, проверять флаги. Т.к. я давно еще изучал Си и паскаль, то мне легче писать на СИ. Полная наглядность и отлов ошибок в дебаггере. Я думаю, что не зависит на каком языке написана программа, а результат CVAVR в асме я тоже иногда просматриваю и вроде бы все Ок, но в устройстве есть такой глюк. Когда касаешься платы или дисплея появляются крякозябры, программа при этот работает (вставлял через минуту lcdinit(16))и через минуту инфа перепрописывалась, но раздражает ежеминутное дерганье ЖКИ. Как избавиться от этого?
1. Поменять язык
2. Поменять МК на более мощный
3. Или что-то еще?
Юрий, честно говоря я немного в шоке. Просто LCD до того вылизаны, что вопросы их применения уже даже не рассматриваются. Чтобы решить твою проблему, думаю, что это будет интересно многим, раз такой эффект проявился, значит он может проявиться и у других, нужно:
1. Схему устройства.
2. Тип LCD.
3. Программу управления.
4. Фото платы с обоих сторон. Той, которая сейчас есть у тебя.
Для начала это все.
Ну не может быть такого эффекта в принципе.
С тобой совершенно согласен. Нет никакой разницы, на чем пишешь. Весь вопрос в цели написания и во времени, которым располагаешь.

-- Прилагается рисунок: --
sva-don вне форума  
Непрочитано 18.04.2009, 21:59  
sva-don
Частый гость
 
Регистрация: 12.08.2007
Адрес: Ростов-на-Дону
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sva-don на пути к лучшему
По умолчанию

Сообщение от IOPA4
Например я пишу:
Код:
delay_us(5);
CVAVR переводит:
Код:
	.MACRO __DELAY_USB
	LDI  R24,LOW(@0)
__DELAY_USB_LOOP:
	DEC  R24
	BRNE __DELAY_USB_LOOP
	.ENDM
Что к этому можно добавить?
К этому можно добавить следующее.
Во первых это стандартный макрос. Должен дать задержку в 5 мкс.
Принцип работы простой.
1. По команде LDI R24,LOW(@0) в регистр R24 загружается аргумент. В данном случае 5.
2. Метка DELAY_USB_LOOP:
3. Регистр R24 декрементируется. Т.е. из него вычитается 1.
4. Проверка, если R24 не равен 0, то идем к п.2
5. Конец макроса.
На первый взгляд все ОК, но...
1. Программист задал конкретную величину задержки 5 мкс.
2. Частота синхронизации процессора в данном случае не учитывается.
3. Результат работы программы непредсказуема.
Попробуйте просчитать время отработки цикла для частоты 1 мГц и частоты 20 мГц. Результат вас удивит.
Вот вам и хваленый С.
Привожу программу и дизасемблер на Asmе. Можете сравнить.
На Васике:
$regfile = "M128def.dat"
$crystal = 8000000

Waitus 5
End

5: Waitus 5
+00000060: 93EF PUSH R30
+00000061: 93FF PUSH R31
+00000062: E0E6 LDI R30,0x06
+00000063: E0F0 LDI R31,0x00
+00000064: 940E006A CALL 0x0000006A
+00000066: 91FF POP R31
+00000067: 91EF POP R30
'end program
+00000068: 94F8 CLI
+00000069: CFFF RJMP PC-0x0000
+0000006A: 9731 SBIW R30,0x01
+0000006B: F7F1 BRNE PC-0x01
0000006C: 9508 RET
Как говориться, найдите разницу.
sva-don вне форума  
Непрочитано 18.04.2009, 22:05  
sva-don
Частый гость
 
Регистрация: 12.08.2007
Адрес: Ростов-на-Дону
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sva-don на пути к лучшему
По умолчанию

Сообщение от IOPA4
А вообще-то этот спор не по сути:
1. Мне думается, что компилятор способен создать нормальный машинный код. Тем более, что многие команды и фунции подменяются давно отработанным машинным кодом. Кто волокет в Асме - загляните в папку CVAVR и изучите асм-файл. Скажите свое мнение.
2. Атмел не зря выпускает такое разнообразие МК. Там есть и тини, и меги, и еще посерезнее. Или тини это для нищих, меги для среднего класса и т.д. Зачем на самосвале возить ведерко песочка? В этом проекте нужно было только три порта, да пару таймеров. Затем задача перешла и в экономичность. Снижена частота МК до разумных пределов. В общем Атмеги8 за глаза. Да еще в нете появилась информация, что не применяйте 16 и 32 Меги, там есть глюк, ну а 64, 128, 256 Меги применять для этого проекта по-барски, тем более, что мне на моем обьекте нужно установить их десяток, моему другу около 40. Из-за чего перешли на светодиодный индикатор - он в два раза дешевле и оказалось, что схема с ним и надежней.
Юрий, честно говоря в такой длинной ветке я уже плохо ориентируюсь. Давай начнем сначала. Ты сформулируешь задачу, желательно максимально подробнее, а мы вместе с тобой попробуем ее решить. Только не нужно ссылок на предыдущие топики. Я так всегда действую. Если случается непреодолимый затык, то сначала еду а рыбалку, а потом сажусь за проект.
sva-don вне форума  
Непрочитано 18.04.2009, 22:07  
sva-don
Частый гость
 
Регистрация: 12.08.2007
Адрес: Ростов-на-Дону
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sva-don на пути к лучшему
По умолчанию

Сообщение от IOPA4
Сообщение от andries5
Может не в тему, но для лучшего понимания AVR,
я решил написать генератор начальног кода под WINAVR.
Вот уже больше месяца не вылезаю из даташитов.
Возможно зря, но правда стал понимать логику работы.
Если бы писал на CVAVR разные задачи, видимо было бы
лучше. Но генератор закончу.
В даташиты приходится постоянно заглядывать, куда без них деться, на чем бы не писал программу. Язык высокого уровня освобождает от рутины. Не все ли равно на каком языке ты задаешь тот или иной режим МК или выводишь биты на порт.
Да, язык здесь не при чем, но реализация алгоритма вывода тех самых битов, а особенно временные дела, очень даже при чем!
sva-don вне форума  
Непрочитано 18.04.2009, 22:25  
sva-don
Частый гость
 
Регистрация: 12.08.2007
Адрес: Ростов-на-Дону
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sva-don на пути к лучшему
По умолчанию

Сообщение от daddy
Кстати, если вставить дисплейные процедуры на асме, то и мерцание прекратится, и память освободится. 8O
Кстати, ради прикола привожу код на Васике для LCD.
Конфигурируем дисплей.

Const _lcdport = Porta
Const _lcdddr = Ddra
Const _lcdin = Pina
Const _lcd_e = 3
Const _lcd_rw = 2
Const _lcd_rs = 1
Config Lcd = 20 * 4
Initlcd
Cls : Display On : Cursor Off Noblink

Т.е. задаем ему порт, пины управления, затем инициализируем, очищаем, включаем, выключаем курсор.
Далее

Cls 'clear the LCD display
Lcd "Hello world." 'display this at the top line
Wait 1
Lowerline 'select the lower lineWait 1
Lcd "Shift this." 'display this at the lower line
Wait 1
For A = 1 To 10
Shiftlcd Right 'shift the text to the right
Wait 1 'wait a moment
Next

For A = 1 To 10
Shiftlcd Left 'shift the text to the left
Wait 1 'wait a moment
Next

Locate 2 , 1 'set cursor position
Lcd "*" 'display this
Wait 1 'wait a moment

Shiftcursor Right 'shift the cursor
Lcd "@" 'display this
Wait 1 'wait a moment

Home Upper 'select line 1 and return home
Lcd "Replaced." 'replace the text
Wait 1 'wait a moment

Cursor Off Noblink 'hide cursor
Wait 1 'wait a moment
Cursor On Blink 'show cursor
Wait 1 'wait a moment
Display Off 'turn display off
Wait 1 'wait a moment
Display On 'turn display on
'-----------------NEW support for 4-line LCD------
Thirdline
Lcd "Line 3"
Fourthline
Lcd "Line 4"
Home Third 'goto home on line three
Home Fourth
Home F 'first letteer also works
Locate 4 , 1 : Lcd "Line 4"
Wait 1[/i]
sva-don вне форума  
Непрочитано 18.04.2009, 22:41  
urry
Почётный гражданин KAZUS.RU
 
Аватар для urry
 
Регистрация: 06.02.2007
Сообщений: 1,340
Сказал спасибо: 3
Сказали Спасибо 106 раз(а) в 66 сообщении(ях)
urry на пути к лучшему
По умолчанию

Сообщение от sva-don
.
1. Программист задал конкретную величину задержки 5 мкс.
2. Частота синхронизации процессора в данном случае не учитывается.
3. Результат работы программы непредсказуема.
Попробуйте просчитать время отработки цикла для частоты 1 мГц и частоты 20 мГц. Результат вас удивит.
Вот вам и хваленый С.
+1000 !!!
__________________
warez
urry вне форума  
Непрочитано 18.04.2009, 22:53  
sva-don
Частый гость
 
Регистрация: 12.08.2007
Адрес: Ростов-на-Дону
Сообщений: 25
Сказал спасибо: 0
Сказали Спасибо 1 раз в 1 сообщении
sva-don на пути к лучшему
По умолчанию

Вот тут на меня наезжали с позорной кличкой "профи" Так вот теперь с очередным юрием разберитесь!
sva-don вне форума  
Непрочитано 19.04.2009, 01:04  
IOPA4
Почётный гражданин KAZUS.RU
 
Аватар для IOPA4
 
Регистрация: 07.05.2008
Адрес: Мурманск
Сообщений: 1,300
Сказал спасибо: 461
Сказали Спасибо 526 раз(а) в 273 сообщении(ях)
IOPA4 на пути к лучшему
По умолчанию

Сообщение от urry
Сообщение от sva-don
.
1. Программист задал конкретную величину задержки 5 мкс.
2. Частота синхронизации процессора в данном случае не учитывается.
3. Результат работы программы непредсказуема.
Попробуйте просчитать время отработки цикла для частоты 1 мГц и частоты 20 мГц. Результат вас удивит.
Вот вам и хваленый С.
+1000 !!!
Но самое интересное, что это же произойдет и с АСМом
IOPA4 вне форума  
 

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

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

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

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

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Видео уроки dosikus Микроконтроллеры, АЦП, память и т.д 61 23.01.2012 21:06
Видео уроки (flash) Proteus 7.1 fmssp Proteus 5 13.08.2007 03:56
AVR уроки Рюмика chipic128 Proteus, KiCAD и другие ECAD 9 07.03.2007 21:46
уроки от LABCENTRE(PIC12F675+C) dosikus Микроконтроллеры, АЦП, память и т.д 22 09.10.2006 10:16


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


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