Ну, чтож спасибо и за этот советСтыковать написанный мной код со сферическим конем в вакууме нет никакого желания.
Вопросы по программированию AVR на ассемблере
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
- Реклама
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
http://radiokot.ru/circuit/digital/home/133/
А микроконтроллер из этой статьи возможно поменять на AVR мк?
А микроконтроллер из этой статьи возможно поменять на AVR мк?
Конечно возможно. Все микроконтроллеры одного класса обладают примерно одинаковыми возможностями.Родион@22 писал(а):А микроконтроллер из этой статьи возможно поменять на AVR мк?
Если говорить о 8-ми разрядных контроллерах, то одна и та же схема может быть реализована хоть на AVR, хоть на PIC, хоть на x51/
В статье, по-крайней мере, описан нормальный прибор, который точно будет работать.
Если нет желания строить именно прибор с малым потреблением, то индикатор можно взять и другой, например, светодиодный семисегментный. В данном случае электрическая принципиальная схема вообще не догма.
Центральная идея - использование промышленного датчика освещенности, выдающего результат измерений по интерфейсу I2C. Остальное - только "обвязка", которую можно поменять. В семействе AVR, кстати, полно МК, имеющих аппаратный I2C, что освободит программиста от необходимости писать еще и программную реализацию I2C
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
а какой есть AVR аналог SiliconLabs?Конечно возможно. Все микроконтроллеры одного класса обладают примерно одинаковыми возможностями.
и как эту программу подстроить под AVR контроллер?
Для этой схемы подойдет любая ATmega. Та же ATmega8, широко распространенная и недорогая.Родион@22 писал(а):а какой есть AVR аналог SiliconLabs?
Никак не подстроить. Вы понимаете, что это контроллеры разных семейств с совершенно разными системами команд? У AVR система команд AVR, а у данного контроллера SiliconLabs система команд х51.Родион@22 писал(а):и как эту программу подстроить под AVR контроллер?
Скажите, возможно взять программу, написанную для Windows и "подстроить" её так, чтобы она смогла запуститься под MacOS?
Но можно, например, написать под Линукс и под MacOS текстовый редактор, выглядящий точно так же, как Word из пакета Microsoft Office, и выполняющий те же самые функции. Проблема тут не техническая, а юридическая - права на графический интерфейс Word'а у Microsoft, и она не позволит кому бы то ни было копировать внешне свою программу.
В нашем случае, аналогично, придется писать программу заново под AVR, но так, чтобы она выполняла те же функции - общение с люксметром по интерфейсу I2C, вывод данных на индикатор. Вряд ли у Вас получится это сделать, учитывая Ваш уровень.
Я не понимаю, почему новички с практически нулевыми познаниями и опытом стремятся учиться сразу на сложных схемах и разработках? Зачем Вам сразу уровень освещенности нужно измерять? Вы бы еще MP3-плейер на AVR начали делать
Логичней сделать элементарную схему, состоящую из МК, пары кнопок и (допустим) восьми светодиодов. Попробовать самому написать программу опроса кнопок, самому написать "бегущий огонь" на светодиодах.
А уж потом переходить к более сложным задачам. Первоклашек вначале учат таблице умножения, а уж потом обучают методикам умножения и деления в "столбик". А Вы именно это и пытаетесь делать - умножать, фигурально выражаясь, в столбик, нетвердо зная таблицу умножения..
Сделав простую схему, о которой я сказал выше, на макетной плате совсем несложно потом "пристегнуть" к ней и ЖКИ-индикатор, и часы типа DS1307, и термометр типа DS1820 и многое другое.
- Реклама
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
я бы с радостью сделать сначала попроще, но система обучения в колледже требует специалиста от школьника 
Что это за колледж такой? Который требует довольно-таки основательного уровня знаний в электронике и программировании?Родион@22 писал(а):система обучения в колледже требует специалиста от школьника
Это устройство Вам нужно "в железе" изготовить, или просто "на бумаге" оформить? И нужен именно прибор, измеряющий освещенность?
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
АКВТ - Астраханский колледж вычислительной техники(бывший Радиотехникум). Учитель сваливает все на министерство.Что это за колледж такой? Который требует довольно-таки основательного уровня знаний в электронике и программировании?
На бумаге, но я действительно заинтересован как рабтают устройства(в данном случае МК). Нужен прибор, который измеряет только солнечную энергию, не люксометр(интенсивность или мощность, как удобнее Вам). А вот мне идейку одногруппник подкинул. Идея в том, что АЦП 10-разрядный, 10 светодиодов(1 светодиод - 10% мощности солнца), 1024/10=102, 4. А в качестве датчика использовать фоторезистор. Прокомментируйте, пожалуйста, идею.Это устройство Вам нужно "в железе" изготовить, или просто "на бумаге" оформить? И нужен именно прибор, измеряющий освещенность?
Заранее спасибо.
ТЗ прилагаю:
- Вложения
-
- Техническое задание Т3С46А.doc
- (37.5 КБ) 203 скачивания
- Сообщения: 3784
- Зарегистрирован: Ср дек 24, 2008 09:58:58
Люкс по определению это количество световой мощности приходящейся на единицу площади. Измеряя мощность солнеччного излучения солнечной батареей фактически сводится к измерению величины светового потока, приходящегося на площадь солнечной батареи. Т.е. Вам по-сути нужен люксометр. Измерять интенсивность солнца солнечной баратеей, от которой еще и питается прибор со светодиодами это - грубо сказать не могу, а мягко выражаясь нет слов (С). Шкала будет жутко нелинейной, т.е. для академического проекта может и сойдет, но практического применения иметь не будет никакого. А главное зачем такие сложности, если есть нормальные датчики освещенности наподобии того, что в статье, снимающие проблемы точности и нелинейности полностью.
Насчет индикации результата 10-ю светодиодами, если я правильно понял, хотите сделать светодиодную шкалу подключив по светодиоду на каждый бит 10-битного АЦП (?) В этом случае линейной шкалы не получите, т.к. например, после значения 15 (в двоичном коде 1111) идет 16 (в двоичном коде 10000). Лучше подключите вместо 10 светиков один 7-сегментный светодиодный индикатор и высвечивайте на нем цифру пропорциональную коду АЦП.
Насчет индикации результата 10-ю светодиодами, если я правильно понял, хотите сделать светодиодную шкалу подключив по светодиоду на каждый бит 10-битного АЦП (?) В этом случае линейной шкалы не получите, т.к. например, после значения 15 (в двоичном коде 1111) идет 16 (в двоичном коде 10000). Лучше подключите вместо 10 светиков один 7-сегментный светодиодный индикатор и высвечивайте на нем цифру пропорциональную коду АЦП.
Хм. Какую именно энергию? Солнце испускает электромагнитное излучение в диапазоне от ближнего инфракрасного до самого жесткого гамма-излучения (распределение излучения по энергиям, конечно, неравномерно, но практически все участки спектра ЭМИ указанного мной диапазона (какие-то в большем, какие-то в меньшем количестве) в солнечном излучении присутствуют. Кроме того, в солнечном излучении, кроме ЭМИ присутствуют электроны и позитроны, нейтрино и т.д. Кроме того, для измерения именно энергии Вам потребуется селектирование излучения по видам, а внутри видов по энергиям. Это получится весьма нехилый набор измерительного оборудования, стоящий многие миллионы рублей.Родион@22 писал(а):Нужен прибор, который измеряет только солнечную энергию
Посмотрел я Ваше ТЗ. Кто его писал? "Измеритель солнечной энергии" - это круто. Я выше описАл, что Вам придется делать по этому заданию
Если писал преподаватель, значит, он слабо знает физику и/или не умеет формулировать. Измерить-то нужно энергию всего испускаемого Солнцем излучения, или только той части, которая входит в конус, попадающий на Землю?
Вам совершенно правильно сказали, что де-факто Вы все равно будете делать люксметр. Именно так и должна ставиться задача.
Вы нечетко формулируете. Из этого предложения непонятно, собираетесь ли Вы подключать светодиоды напрямую к АЦП или же все-таки использовать микроконтроллер, который будет либо управлять подключенным к нему внешним АЦП, либо использовать свой внутренний АЦП и по результатам замеров зажигать подключенные к свободному порту(портам) светодиоды.Родион@22 писал(а):Идея в том, что АЦП 10-разрядный, 10 светодиодов(1 светодиод - 10% мощности солнца), 1024/10=102, 4. А в качестве датчика использовать фоторезистор.
Если имеется в виду первое, то сразу забудьте эту глупость. Во-первых, АЦП сам по себе работать не будет, им нужно управлять. Как минимум, запускать преобразование, но не только. Во-вторых, для этого подойдет только АЦП с параллельным выходом, но сигнал на выходах присутствует отнюдь не все время. Выходы АЦП не предназначены для подключения к ним такой нагрузки, как светодиоды и так далее. Плюс то, что выше Вам написали о неравномерности шкалы. В общем, идея бредовая.
Если имеется в виду второе - наличие в схеме управляющего микроконтроллера - идея реализуема. Конечно, в "настоящих" разработках фоторезисторы для этой цели не применяются по многим причинам, но для "учебной" разработки они вполне подойдут.
Только сразу забудьте про питание от фотоэлемента и прочую чушь. Питание нужно делать от нормальной батареи, способной отдать нужный ток. Использовать для индикации одиночные светодиоды - не самое лучшее решение, Вам выше совершенно правильно сказали, что лучше 7-ми сегментный индикатор. Для него и выводов потребуется меньше - 8 выводов (как раз один порт МК) позволят отобразить 10 состояний. А 10 одиночных светодиодов потребуют 10 выводов либо внешнюю схему на сдвиговых регистрах.
АЦП не обязательно 10-ти разрядный, хватит и 8-ми разрядного. 8 разрядов - это 256 (0...255) значений. Микроконтроллер у Вас есть. Можно разделить хоть на сколько градаций. Надо 10 - пожалуйста, на одну градацию придется 25 "попугаев" АЦП.
Имейте в виду, что схема даст Вам результат в виде неких условных "попугаев". Вы же помните, что удава можно измерять хоть в мартышках, хоть в попугаях?
Для того, чтобы от "попугаев" перейти к люксам, Вам потребуется образцовый люксметр для калибровки. Конечно в реале он не потребуется, коль скоро у Вас разработка "на бумаге", просто в сопроводительной документации, которую вы будете делать, нужно предусмотреть раздел "Калибровка прибора", в котором обязательно описать методику калибровки.
Поскольку у Вас индикация будет дискретная, то после калибровки Вы должны будете приложить к прибору таблицу, в которой будет указано, что (к примеру) градация 0 - это диапазон от нуля до 5 люкс, градация 1 - от 5 до 10 люкс и т.д. Вряд ли шкала будет линейная, скорее всего нет. Конкретные диапазоны (сколько люкс придется на конкретную градацию) определится только при калибровке по образцовому люксметру.
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
Мне вряд ли понадобится точное измерение, скорее просто измерение
А вместо солнечной батареи использовать обычные батарейки. Да придется согласится, что это собственно люксометр, но люксометр только для освещения солнцем.
Из ваших комментариев я понял, что:
1) мне нужен люксометр
2) питать наверное, лучше от простых пальчиковых батарей
3) использовать 7- сегментный индикатор
4) а какой датчик освещенности использоать для Attiny26?
А конденсаторы, тоже лучше убрать?
Помогите составить программу для неродивого студента (особенно с АЦП, как он преобразует свет в цифры и покажет все это на индикаторе):write:
А вместо солнечной батареи использовать обычные батарейки. Да придется согласится, что это собственно люксометр, но люксометр только для освещения солнцем.
Из ваших комментариев я понял, что:
1) мне нужен люксометр
2) питать наверное, лучше от простых пальчиковых батарей
3) использовать 7- сегментный индикатор
4) а какой датчик освещенности использоать для Attiny26?
А конденсаторы, тоже лучше убрать?
Помогите составить программу для неродивого студента (особенно с АЦП, как он преобразует свет в цифры и покажет все это на индикаторе):write:
Так. Давайте еще раз. Устройство будет изготавливаться реально или нет?Родион@22 писал(а):4) а какой датчик освещенности использоать для Attiny26?
Если нет, то какая разница, какой датчик применить и какой МК из семейства AVR взять?
Чего Вы уткнулись в эту ATtiny26? Выберите ATmega8, выберите датчик MAX44009, выдающий результат сразу в люксах.
Ассемблер абсолютно одинаковый, в меге8 он даже чуть расширен, например, есть команды умножения, есть команда movw, производящая разом копирование двух регистров.
Выбор конкретной модели контроллера критичен тогда, когда контроллер уже куплен, или требуется заменить один контроллер другим, если печатная плата уже сделана, тогда очень важно совпадение цоколевки. Или Вы чего-то недоговариваете? Будете изготавливать реально или нет?
- Сообщения: 3784
- Зарегистрирован: Ср дек 24, 2008 09:58:58
http://radiokot.ru/circuit/digital/measure/67/
Родион, посмотрите на эту статью. В конце статьи есть линк на ветку форума, где этот проект адаптировали под AVR.
Родион, посмотрите на эту статью. В конце статьи есть линк на ветку форума, где этот проект адаптировали под AVR.
А смысл? В ТЗ, которое дал Родион, нет ни слова о том, на МК какого семейства должен быть сделан проект.Ser60 писал(а):Родион, посмотрите на эту статью. В конце статьи есть линк на ветку форума, где этот проект адаптировали под AVR.
Я так понимаю, что даже на AVR он не будет разрабатывать проект самостоятельно. Он будет просить помощи как в разработке схемы, так и в разработке программы.
То есть, будет делать курсовую не самостоятельно, поэтому о качестве обучения говорить все равно не приходится.
А коли так - чего мучиться самому и мучить других? Взять готовую схему люксметра из этой статьи, программа там тоже есть и сдать как свою работу. Какая разница, сдаст он курсовую, написанную нами, или сдаст курсовую, взятую с сайта?
Когда я прочитал вот это
я подумал, что он действительно учится в школе, а эта работа - своего рода вступительное задание или проект, который нужно сделать на курсах подготовки к поступлению в колледж. Еще поразился, надо же, как круто образование шагнуло.Родион22 писал(а):система обучения в колледже требует специалиста от школьника
А оказалось, что это "курсач". Родион, Вы не школьник, Вы студент. Наверняка курс третий, не меньше. Именно такой сложности и должны быть курсовые, Вы же не в кулинарном техникуме обучаетесь, а в радиотехникуме (неважно, как он сейчас называется). Если во время учебы учиться, а не пинать балду, то ничего сложного тут нет, тем более при наличии интернета. Уж адаптировать-то готовое должны уметь, если хоть чему-то научились. А если схемотехника и программирование Вам непонятны, тогда, быть может, Вы не на ту специальность учитесь?
В общем, я переключаюсь из "режима помощи новичку" в "режим помощи студенту-раздолбаю"
А это означает, что если у Вас что-то не получается, я вначале попрошу показать, что Вы сделали и буду искать ошибку в сделанном. "С нуля" больше не напишу ни строчки кода. Нужен алгоритм подпрограммы - вначале попробуйте написать сами.
Лично у меня переделка той программы из ассемблера x51 в ассемблер AVR займет, думаю, часа полтора с перерывом на кофе. Но я этого делать не буду.
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
Времена Советского союза прошли, ни один учитель в колледже не знает программирование МК, зато требует сверх того, чего не дает. Я не пропускал ни один урок, но ничего "такого" не открыл за все обучение. Да я не умею программировать, нас даже бегущим огонькам не учили, поэтому обратился к людям, да видно ничего не выйдет. Учителя работают ради галочки и денег. Я понимаю, что никто никому не обязан.
Думаешь здесь кого-то этому учили? Тем более, во времена СС? Здесь так же все сами, с 0 начинали. Посещение лекций ничего не дает. Необходимо еще самому чем-то интересоваться, задаваться вопросами и находить на них ответы. Так что бери книгу в руки - и вперед. А вот если будут вопросы по прочитанному - тогда к нам. 
P.S. За все мое время обучения с меня ни разу не потребовали того, чего не давали. И отмазка Вы нас этому не обучали всегда работала на 100%. А учился я в трех ВУЗах. Сдается мне, что наш бедный студент не все лекции посещал.
P.S. За все мое время обучения с меня ни разу не потребовали того, чего не давали. И отмазка Вы нас этому не обучали всегда работала на 100%. А учился я в трех ВУЗах. Сдается мне, что наш бедный студент не все лекции посещал.
Не все, некоторые на этот сайт попали, имея два дипломаИС-пытатель писал(а):Здесь так же все сами, с 0 начинали.
Это понятно, кто может делать - делает, а кто не может - учит. Поэтому если препод не занимается разработкой практически, то зачастую знает свой материал только "по верхушкам". Но как это извиняет Вас?Родион@22 писал(а):ни один учитель в колледже не знает программирование МК, зато требует сверх того, чего не дает.
Вы учитесь для чего? Чтобы потом пойти работать по специальности, или потому что мама запихнула в колледж "лишь бы диплом был"? Если хотите работать, то как Вы собираетесь это делать с такими познаниями?
Когда нам в универе читали курс по микропроцессорам x51, вы думаете, нам вдумчиво, с чувством, с толком и расстановкой рассказывали об ассемблерных командах? Да щ-щ-щас же, ага.
Препод раздал методички "Архитектура однокристальной микроЭВМ К1816ВЕ31" и "Система команд однокристальной микроЭВМ К1816ВЕ31" (почему так хорошо помню - нам их раздали навсегда, вот они передо мной, они мне дороги как память
Как видите, никто особо и не заморачивался с тем, чтобы чему-то нас учить. Учиться мы должны сами, а препод лишь проверяет качество усвоенного материала. Конечно, такому изучению микроконтроллеров предшествовали теоретические лекции, на которых рассказывалось, как в принципе устроены микроконтроллер и микропроцессор, про гарвардскую и принстонскую (она же Фон Неймановская) архитектуры. Но эту теорию может рассказать любой препод, даже не умеющий программировать.
Разве Вам мало помогали? Но писать курсовую за Вас - это уж извините, как говорится. Я свои курсовые уже давно отписал.Родион@22 писал(а):поэтому обратился к людям, да видно ничего не выйдет
Одно дело помочь новичку, и совсем другое - обеспечить "халяву" безалаберному студенту.
- Сообщения: 49
- Зарегистрирован: Ср апр 16, 2014 18:46:46
Нет, такого я даже не говорил. Я, Вас наоборот благодарю, что хоть как-то откликнулись.Разве Вам мало помогали?
А курсовой проект, за меня никто не делал, не делает и не будет делать. Я и не просил его за меня делать. Я лишь хотел на примере программ узнать как АЦП преобразует свет в цифру, а потом отображает на светодиодах.
Нам даже не говорили о "хекс" файлах! Все сами.
Да и халявы не откуда ждать. Халява это когда вообще не знаешь ничего и даже никого не спрашиваешь. Я бы и не заморачивался. Некоторые просто деньги суют и все, приходя в заведение лишь на последней неделе.
Не хотите, объяснять посылайте, ваше право.
Курсовой проект это не только схема и программа. Раньше может так и было
- Сообщения: 3784
- Зарегистрирован: Ср дек 24, 2008 09:58:58
Родион, с таким подходом к делу Вам здесь определенно помогут. Но поке не ясно что Вы спрашиваете. АЦП преобразует аналоговый сигнал в цифру не программно, а аппаратно. Если хотите узнать как настроить и использовать АЦП в программе - это есть в любой книге по AVR.


