Суббота, 05.03.2011, 11:00 Вы вошли как Гость | Группа "Гости"
Eugene's MCU
Главная | | Мой профиль | Выход | RSS

[ Личные сообщения() · Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Страница 8 из 9«126789»
Форум » Основной раздел » Разработка: программирование, схемотехника. » АЦП ATmega16 (Учебная программа - вольтметр на ATmega16)
АЦП ATmega16
us4ilq

Дата: Воскресенье, 20.12.2009, 13:38 | Сообщение # 71

Группа: Пользователи
Сообщений: 48
Статус: Offline
А может и правда у меня что то не так с настройками компилятора???
Прицепил картинку настроек в архиве
clip_image002.rar(37Kb)

[ (UA) ]

eugenemcu

Дата: Воскресенье, 20.12.2009, 13:53 | Сообщение # 72

Группа: Администраторы
Сообщений: 89
Статус: Online
Не хочется гадать на гуще
Пока подозрение на кодвижновские задержки delay_ms () тем более Вы утверждаете, что реально макет на 4МГц, а в настройках компилятора стоит 8.
CV подбирает эти задержки исходя из заданной частоты 8Мгц, если в реальности частота в 2 раза меньше, то задержки увеличатся в 2 раза, но это все равно не должно тормозить. Хотя если учесть что Вы, если я правильно понял, уменьшили период отоборажени до 200мс, то программа уже работает на грани фола по быстродействию.
Кодвидновский же драйвер наверняка выполнен без "тупых" задержек, а считывает флаги, в этом его достоинство по сравнению с моим, в котором просто присутствуют задержки (возможно несколько затянутые).
Какова бы ни была причина тормозов, полезно учитывать, что символьный ЖК не отличается особым быстродействием. И нужно стараться минимизировать обращения к нему там, где это возможно. Например, строки:

LCD_VIEW(9,'t');
LCD_VIEW(8,'l');
LCD_VIEW(7,'o');
LCD_VIEW(6,'v');
LCD_VIEW(3,(','));
LCD_VIEW(1,'=');
LCD_VIEW(0,'U');

достаточно вывести один раз до начала основного цикла while(1). Если всего этого не учитывать, то рано или поздно начнёт чихать любой даже самый шустрый драйвер.


[ (RU) ]

us4ilq

Дата: Понедельник, 21.12.2009, 04:26 | Сообщение # 73

Группа: Пользователи
Сообщений: 48
Статус: Offline
Здравствуйте Евгений !
Quote

По поводу этого:
LCD_VIEW(9,'t'); ... LCD_VIEW(0,'U');
достаточно вывести один раз до начала основного цикла while(1). Если всего этого не учитывать, то рано или поздно начнёт чихать любой даже самый шустрый драйвер.

Я понял. А что до картинки настроек то ее я сделал пока еще на 8ми мегагерцах было, НО кроме тактовой частоты там ничего не менялось.

ЖК не отличается особым быстродействием - это мне тоже извесно.
Что до Вашей функции задержек , ток я ее в драйвере не нашел. Правда позже обнаружил в программе тахометра,
но к тому времени уже воспользовался штатной.
В принципе сейчас меня уже все устраивает - размер кода =9,2% вместе с этим

Code
unsigned int DlnA;                    // Для расчёта длины строки

   DlnA=AdcCode;   //Присваиваем значение... думаю понятно что к чему =)
   DlnA=DlnA/50;     // Расчёт длины строки. Делим на 50.

      while (DlnA!=0)    //Если не равно 0 выполняем печать символа в заданных координатах
                   {                         
                      lcd_gotoxy(DlnA-1,1);                 // Указываем координаты X с корректировкой на 1
                      lcd_putchar(0xff);                 // Сама печать символа
                      --DlnA;                    // Двигаем координату по X в лево
                       
                    }


это мне сынок помог :), против 16 с хвостом% при использовании sprintf
Хотя справедливости ради должен сказать что с Вашим драйвером размер еще меньше - что то 8 с лишним %.

С уважением Сергей.

Добавлено (21.12.2009, 04:26)
---------------------------------------------
Да! Евгений! Уже давненько хотел Вас спросить:
А Вы сталкивались когда нибудь с микросхемами DDS ?
У меня сейчас есть AD9951 новая и есть откуда выпаять AD9851 и AD9832, они точно рабочие.
А так же очень интерисует опыт работы с графическими ЖКИ у меня лежит новый fdcg12864b от FORDATA ELECTRONIC ?


[ (UA) ]

eugenemcu

Дата: Понедельник, 21.12.2009, 09:11 | Сообщение # 74

Группа: Администраторы
Сообщений: 89
Статус: Online
Здравствуйте, Сергей. С графическими ЖК не работал. Есть желание побаловаться с телефонным цветным экраном. AD98XX тоже не пробовал. Сейчас, к сожалению, не так много свободного времени, как хотелось бы...


[ (RU) ]

us4ilq

Дата: Вторник, 22.12.2009, 19:52 | Сообщение # 75

Группа: Пользователи
Сообщений: 48
Статус: Offline
Здравствуйте Евгений !
Ну чтож. Как говорится "на нет и суда нет" А жаль аднака
Сергей

Добавлено (22.12.2009, 19:52)
---------------------------------------------
Здравствуйте Евгений!

Давненько уже мучает меня один вопрос:
Что такое JTAG, как оно работает, и какие прграммы отладчики его поддерживают???

1. При его использовании для отладки, микроконтроллер прошивается, или отладка
производится прямо в ОЗУ?

2. Какие отладчики , кроме АВР СТУДИО его поддерживают?

3. Ткните носом в толковое РУСКОЯЗЫЧНОЕ описание сего "прибамбаса". Ну или сами обьясните хотябы в кратце.

Скажу сразу, о том что в МК нужно зашивать БУТЛОДЕР я уже читал.

Спасибо Сергей.


[ (UA) ]

eugenemcu

Дата: Суббота, 26.12.2009, 12:43 | Сообщение # 76

Группа: Администраторы
Сообщений: 89
Статус: Online
Здравствуйте, Сергей.
Вы уж меня простите, но JTAG при отладке я всегда считал ненужными и при этом достаточно дорогими костылями.
Имхо, чтобы увидеть прихожу я туда, куда хочу попасть, достаточно простого светодиода. А если интересует значение какого-то регистра или переменной, то в нужном месте программы его всегда можно считать и отравить по UART в COM-порт. В 99% случаев этого вполне достаточно.
Насчёт толкового русского описания сомневаюсь, что оно есть в природе
Вообще сам мо себе JTAG это более широкое понятие, чем просто средство отладки:
JTAG (сокращение англ. Joint Test Action Group) — специализированный аппаратный интерфейс, разработанный для тестирования собранных печатных плат (с использованием стандарта IEEE 1149.1). Из-за широкой функциональности JTAG стал повсеместно использоваться для отладки и программирования.


[ (RU) ]

us4ilq

Дата: Воскресенье, 27.12.2009, 21:07 | Сообщение # 77

Группа: Пользователи
Сообщений: 48
Статус: Offline
Здравствуйте Евгений!

Спасибо за ответ.
А то я уж подумал что что то несуразное ляпнул
Вообщето мне и самому несовсем понятно нужно оно мне или нет?
Просто не очень удобно за каждым разом перепрошивать контроллер,
да и ресурс у него ведь небезконечный.
Но с другой стороны у меня их аж 3 штуки есть, да и недорогие они.
В любом случае мой вопрос , это всего лиш разведка

Я тут еще одну идею собираюсь воплотить в жизнь (маленькую такую ),
но это уже после нового года наверное. А пока читаю публикации по этому поводу,
пытаюсь разобраться.

К стати!
С НАСТУПАЮЩИМ НОВЫМ ГОДОМ!!!
Счастья,
Здоровья,
Успехов,
ну и всего того, что сами себе желаете!


[ (UA) ]

eugenemcu

Дата: Воскресенье, 27.12.2009, 21:21 | Сообщение # 78

Группа: Администраторы
Сообщений: 89
Статус: Online
Спасибо, Сергей.
Вам тоже всего самого наилучшего...


[ (RU) ]

us4ilq

Дата: Пятница, 01.01.2010, 13:38 | Сообщение # 79

Группа: Пользователи
Сообщений: 48
Статус: Offline
Поздравляю с НОВЫМ ГОДОМ!!!


[ (UA) ]

oleg-him

Дата: Воскресенье, 19.12.2010, 17:04 | Сообщение # 80

Группа: Пользователи
Сообщений: 26
Статус: Offline
с новым....годом


[ (RU) ]

Форум » Основной раздел » Разработка: программирование, схемотехника. » АЦП ATmega16 (Учебная программа - вольтметр на ATmega16)
Страница 8 из 9«126789»
Поиск: