|
Простой микроконтроллерный Пинпоинтер - Страница 18 - Форум
Простой микроконтроллерный Пинпоинтер
|
|
ANDEX | Дата: Пятница, 05.04.2013, 11:46 | Сообщение # 256 |
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
| yriko, я просто непридал этому значения,думал какая разница какое там напряжение ведь контроллер каждые 3 секунды обнуляется,потом доменя дошло,что резистор Р2задает необходимый режим работы генератора. Уменя щас другие неприятности-зависимость от темпиратуры и неполучается достичь 5 см чтобы небыло влияния на наклоны,ложные сраьатывания.
|
|
| |
geradot | Дата: Вторник, 09.04.2013, 22:23 | Сообщение # 257 |
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Offline
| yriko, я собрал пинпоинтер по материалам из 224 поста. Все отлично работает. Вот только хорошо бы еще исходный код посмотреть для прошивки. Все предыдущие прошивки с исходными кодами отличаются от прошивки в 224 посте как по размеру, так и по содержанию. Во всех исходных кодах, что выкладывались в этой теме, отсутствует возможность управления светодиодом, что и отличает их от прошивки в 224 посте. Если не найдется исходного кода, то хотя бы интересно знать, отличается ли алгоритм в исходных кодах от алгоритма в рабочей прошивке?
|
|
| |
yriko | Дата: Четверг, 11.04.2013, 02:44 | Сообщение # 258 |
Рядовой
Группа: Пользователи
Сообщений: 13
Статус: Offline
| geradot я не понял что вы имеете ввиду,если 15 и 25 то исходные данные надо просить у автора,если же на 13 то в сообщении поста 241 есть исходные данные на тини 13.Пока сам только учусь собирать на контроллере,думал что не пригодится,а вот пришлось учиться.Если что то улучшишь работу гнома выкладывай сюда,кому то поможет.Удачи!
|
|
| |
geradot | Дата: Пятница, 12.04.2013, 20:13 | Сообщение # 259 |
Рядовой
Группа: Пользователи
Сообщений: 2
Статус: Offline
| Все, разобрался! Пишу я в основном на ассемблере, поэтому как то не привычно разбирать СИ. Yriko, у Вас в схеме ошибка. Второй вывод – это PB3, а третий – это PB4. А то смотрю я в программу и на схему и понять не могу, зачем дергать ногу PB4, на которую приходит аналоговый сигнал?!
Цитата в сообщении поста 241 есть исходные данные на тини 13 Исходного кода там нет,только файл прошивки.
Теперь несколько замечаний по программе из 157 поста, которые сразу вглаза бросились.
1. Лучше все выводы определить в самом начале программы, что бы не было ощущения жесткой привязки к схеме. 2. Неверно задан коэффициент деления. Значение CLKPR=0x04 соответствует делению тактового сигнала на 16, а не на 32. 3. Лучше,если тактовая частота будет 9.6 MHz, а коэффициент деления 32. 9.6 MHz это частота по умолчанию, не надо будет править fuse-биты, в новом МК. 4. В строке 23 нет необходимости разрешать прерывание командой SREG |=0x80, а в строке 37 можно разрешить прерывание ассемблерной командой #asm("sei") 5. В строке 28 нет необходимости сбрасывать watchdog-таймер, программа и так выполняется в прерывании от этого таймера. 6. В строке 51 незачем еще раз инициализировать watchdog-таймер. 7. В строках 63 и 64 лучше инвертировать биты, в зависимости от состояния битов регистра PORTB, а не PINB. Тогда не будет необходимости в начале программы устанавливать вывод PORTB.0 в 1. 8. В строках 68..74 похоже намудрил компилятор. Переменная ADC_VREF_TYPE равна нулю. В строке 74 она умножается на 0xFF и складывается с adc_input, что ровным счетом ничего не меняет. Кстати, в качестве значения adc_input, лучше прописать константу, которая определяет вывод входа АЦП, а значение этой константы определять в начале программы (что я и сделал в моей версии программы). 9. В строке 81 записью в 6 бит регистра ADCSRA запускается процесс преобразования. А вот условием окончания преобразования служит сброс этого бита в ноль. А в строке 83 почему то проверяется состояние бита 4, что является не верным. Но так как преобразование длиться всего 13 тактов, то длительность нижеследующих команд цикла как раз обеспечивает нужную задержку. В 84 строке устанавливается бит 4 бит (ADIF- флаг прерывания от компаратора), что не запускает новый процесс преобразования. 10. В строке 87 результирующее значение делится на удвоенное число измерений. Почему именно удвоенное? 11. В строке 109 лучше указать устанавливаемые биты при помощи заранее заданных констант. Без строки 108, определяющие уровни на выходах в принципе можно обойтись. 12. Без строки 117 так же можно обойтись. По-умолчанию все регистры ввода-вывода обнулены. 13. И 129,130, 131 и 133 строки так же не нужны. В строке 129 производиться отключение цифровых буферов это требуется только для очень точного преобразования АЦП, когда выбран точный источник опорного напряжения или требуется сократить ток потребления на несколько мкА. 131 строка так же бессмысленна ввиду того, что ADC_VREF_TYPE = 0. В 133 строке нулевое значение ADCSRB умножается на константу. 14. Регистр OSCCAL предназначен для точной настройки RC-генератора. Константа заносимая в этот регистр индивидуальна для каждого МК. 15. Для включения прерывания от сторожевого таймера, достаточно задать коэффициент деления и установить 6-ой бит регистра WDTCR, отвечающего за разрешение прерывания. Для этого хватит одной команды записи в регистр WDTCR значения 0х60. Кстати, при установленном 5 бите (WDP3), период прерывания составляет 4 секунды, а не 2,5, как написано в строке 33. 16. В строке 173 желательно так же снимать питание с пъезодинамика, установив оба вывода (если подключение производиться к двум выводам) в одинаковый логический уровень (но при этом предварительно исправив строки 63..64 так как я написал выше). Особенно это важно при подключении электромагнитрого излучателя.
Теперь несколько слов о моей версии программы.
1. Если Вы купили новый МК, то никаких манипуляций с fuse-битами производить не надо. 2. В самом начале программы можно настроить выводы так, как будет удобно. 3. Для усиления звучания пъезодинамика его лучше подключать к двум выводам BUZER_1 и BUZER_2. 4. Если подключаете к одному, то второй вывод пъезодинамика можно посадить как на общий провод так и на плюс питания, только при этом надо в строках 136 и 137 установить такие уровни, что бы напряжение не подавалось по умолчанию. То же касается и светодиода. 5. Константой Time_to_sig можно задать время напоминания. Единица константы равна 4 секундам. 6. Константой Pin_Coil можно задать вывод под вход аналогового сигнала.
И по поводу аппаратной части. Пинпоинтер работает стабильнее, если стабилизировать питание генератора, включив стабилитрон, например на 3 вольты, между общим проводом и точкой после резистора R3 (4.7 кОм). Так же стабильность повышается. если всю схему запитывать через стабилизатор напряжения.
Сообщение отредактировал geradot - Пятница, 12.04.2013, 20:54 |
|
| |
yriko | Дата: Вторник, 16.04.2013, 16:13 | Сообщение # 260 |
Рядовой
Группа: Пользователи
Сообщений: 13
Статус: Offline
| geradot спасибо за ответ,правда это не моя схема и разрабатывал этого Гнома М тоже не я то что вы обьяснили это конечно хорошо,но я пока только сам учусь и разбираюсь с микроконтроллерами.Так что для меня пока тёмный лес Но то что вы написали приятно что кому то всё равно помогли разобраться понять как работает это хозяйство.А теперь самое главное,раз вы понимаете как работает контроллер не могли бы подправить,всё то что вы считаете улучшит работу Гнома М показать здесь на сайте.Ведь многие занимаются и много новичков которые хотят собрать.Я вижу в зип папке есть файл hex но что это не ясно.Если какие исправления то не могли бы прокомментировать.За ранее спасибо.
|
|
| |
ANDEX | Дата: Среда, 17.04.2013, 13:27 | Сообщение # 261 |
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
| Ребята,я нормальной работы так и не добился,в чем может быть причина? Пока пин неподвижный, можно добиться любой чувствительности резистором р2 ,но прибор будет срабатывать если его наклонять ,видимо поле земли влияет, чувствительность убавляю - тогда пятак видит с одного сантиметра !!! Что посоветуете?
|
|
| |
Magoll | Дата: Пятница, 19.04.2013, 10:17 | Сообщение # 262 |
Подполковник
Группа: Пользователи
Сообщений: 141
Статус: Offline
| ну как бы..сделал несколько приборов. все работают стабильно. Чуйка, конечно, меньше авторской. в среднем 3.5-4 см Так что: ищи косяки в плате
|
|
| |
ANDEX | Дата: Пятница, 19.04.2013, 11:53 | Сообщение # 263 |
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
| Magoll, у вас от темпиратуры сильно зависит чувствительность? Скажем перепад в 10 градусов. Добавлено (19.04.2013, 11:53) --------------------------------------------- На каком контроллере собирали?
|
|
| |
Magoll | Дата: Пятница, 19.04.2013, 13:12 | Сообщение # 264 |
Подполковник
Группа: Пользователи
Сообщений: 141
Статус: Offline
| у меня сильно зависило..пока не поставил 0.01мкф пленку(зеленую подушечку) А до этого -жуть. Дело было по зиме. пока в руках-все нормально. а положил на прохладный подоконник. все, реакции нет. Потом поставил правильные кондеры. собирал на 13 аттини.
Сообщение отредактировал Magoll - Пятница, 19.04.2013, 13:14 |
|
| |
ANDEX | Дата: Пятница, 19.04.2013, 16:25 | Сообщение # 265 |
Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Offline
| Magoll, там с2-0,01 и с4-0,01, с2 наверное должна быть пленка?
|
|
| |
Magoll | Дата: Пятница, 19.04.2013, 16:33 | Сообщение # 266 |
Подполковник
Группа: Пользователи
Сообщений: 141
Статус: Offline
| именно после замены С2 у меня пропала зависимость от Т.
|
|
| |
romic_iz_Nijnego | Дата: Вторник, 23.04.2013, 21:31 | Сообщение # 267 |
Лейтенант
Группа: Пользователи
Сообщений: 48
Статус: Offline
| Я, конечно, дико извиняюсь, но пойдёт ли прошивка от 25-ой меги на 26-ю ? (ATmega26)
|
|
| |
Mehvz | Дата: Суббота, 27.04.2013, 03:06 | Сообщение # 268 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Здравствуйте! Кто подскажет. Собрал Гном на тане25 включаю, выставляю 1в на 2-ой ноге при поднесение металла к катушке ничего не происходит меряю напряжение на светодиоде 0.87в забираю метал от датчика 0в , в чем может быть причина, кто подскажет. Все сделал как по книжке менял провода катушки и ничего . Заранее спасибо.
|
|
| |
bliznecvy | Дата: Суббота, 27.04.2013, 16:30 | Сообщение # 269 |
Генерал-майор
Группа: Пользователи
Сообщений: 295
Статус: Offline
| Mehvz, Что происходит при включении? Должно быть так-вкл. -короткая трель- старт программы, длинный сигнал-калибровка датчика. Если этого не происходит, перепрошейте камень., проверьте питание, и т.д. Спасибо за внимание
Сообщение отредактировал bliznecvy - Суббота, 27.04.2013, 16:31 |
|
| |
Mehvz | Дата: Воскресенье, 28.04.2013, 02:21 | Сообщение # 270 |
Рядовой
Группа: Пользователи
Сообщений: 4
Статус: Offline
| Да все проходит ка к и Вы пишете но после этого бузер издает трески похоже на жужание с перерывами в одну секунду, напряжение 1в на 2-ом выводе не могу выставить постоянно скачет. Второй контролер напряжение 1в выставляется на вив. 3 контролера при поднесение к металлу напряжение зростает з 0в до 0.8в на бузере никакого сигнала.
Сообщение отредактировал Mehvz - Воскресенье, 28.04.2013, 12:12 |
|
| |
|
|