Мой сайт
Форма входа
Поиск
Мини-чат
Статистика
Пятница, 15.11.2024, 01:23
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
Простой микроконтроллерный Пинпоинтер - Страница 18 - Форум
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Простой микроконтроллерный Пинпоинтер
ANDEXДата: Пятница, 05.04.2013, 11:46 | Сообщение # 256
Рядовой
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: 0
Статус: Offline
yriko, я просто непридал этому значения,думал какая разница какое там напряжение ведь контроллер каждые 3 секунды обнуляется,потом доменя дошло,что резистор Р2задает необходимый режим работы генератора.
Уменя щас другие неприятности-зависимость от темпиратуры и неполучается достичь 5 см чтобы небыло влияния на наклоны,ложные сраьатывания.
 
geradotДата: Вторник, 09.04.2013, 22:23 | Сообщение # 257
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: Offline
yriko, я собрал пинпоинтер по материалам из 224 поста. Все отлично работает. Вот только хорошо бы еще исходный код посмотреть для прошивки. Все предыдущие прошивки с исходными кодами отличаются от прошивки в 224 посте как по размеру, так и по содержанию.
Во всех исходных кодах, что выкладывались в этой теме, отсутствует возможность управления светодиодом, что и отличает их от прошивки в 224 посте. 
Если не найдется исходного кода, то хотя бы интересно знать, отличается ли алгоритм в исходных кодах от алгоритма в рабочей прошивке?
 
yrikoДата: Четверг, 11.04.2013, 02:44 | Сообщение # 258
Рядовой
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
geradot  я не понял что вы имеете ввиду,если 15 и 25 то исходные данные надо просить у автора,если же на 13 то в сообщении поста 241 есть исходные данные на тини 13.Пока сам только учусь собирать на контроллере,думал что не пригодится,а вот пришлось учиться.Если что то улучшишь работу гнома выкладывай сюда,кому то поможет.Удачи!
 
geradotДата: Пятница, 12.04.2013, 20:13 | Сообщение # 259
Рядовой
Группа: Пользователи
Сообщений: 2
Награды: 0
Репутация: 0
Статус: 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 кОм).
Так же стабильность повышается. если всю схему запитывать через стабилизатор напряжения.
Прикрепления: Tiny-13-10bit-A.zip (59.4 Kb)


Сообщение отредактировал geradot - Пятница, 12.04.2013, 20:54
 
yrikoДата: Вторник, 16.04.2013, 16:13 | Сообщение # 260
Рядовой
Группа: Пользователи
Сообщений: 13
Награды: 0
Репутация: 0
Статус: Offline
geradot  спасибо за ответ,правда это не моя схема и разрабатывал этого Гнома М тоже не я smile то что вы обьяснили это конечно хорошо,но я пока только сам учусь и разбираюсь с микроконтроллерами.Так что для меня пока тёмный лес wacko Но то что вы написали приятно что кому то всё равно помогли разобраться понять как работает это хозяйство.А теперь самое главное,раз вы понимаете как работает контроллер не могли бы подправить,всё то что вы считаете улучшит работу Гнома М показать здесь на сайте.Ведь многие занимаются и много новичков которые хотят собрать.Я вижу в зип папке есть файл hex но что это не ясно.Если какие исправления то не могли бы прокомментировать.За ранее спасибо.
 
ANDEXДата: Среда, 17.04.2013, 13:27 | Сообщение # 261
Рядовой
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: 0
Статус: Offline
Ребята,я нормальной работы так и не добился,в чем может быть причина?  
Пока пин неподвижный, можно добиться      любой чувствительности резистором р2   ,но прибор будет срабатывать если его наклонять     ,видимо поле земли влияет,   чувствительность  убавляю - тогда пятак видит с одного сантиметра !!!      
Что посоветуете?
 
MagollДата: Пятница, 19.04.2013, 10:17 | Сообщение # 262
Подполковник
Группа: Пользователи
Сообщений: 141
Награды: 0
Репутация: 0
Статус: Offline
ну как бы..сделал несколько приборов. все работают стабильно.
Чуйка, конечно, меньше авторской. в среднем 3.5-4 см
Так что: ищи косяки в плате
 
ANDEXДата: Пятница, 19.04.2013, 11:53 | Сообщение # 263
Рядовой
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: 0
Статус: Offline
Magoll, у вас от темпиратуры сильно зависит чувствительность?           Скажем перепад в 10 градусов.

Добавлено (19.04.2013, 11:53)
---------------------------------------------
На каком контроллере собирали?

 
MagollДата: Пятница, 19.04.2013, 13:12 | Сообщение # 264
Подполковник
Группа: Пользователи
Сообщений: 141
Награды: 0
Репутация: 0
Статус: Offline
у меня сильно зависило..пока не поставил 0.01мкф пленку(зеленую подушечку)
А до этого -жуть.
Дело было по зиме.
пока в руках-все нормально. а положил на прохладный подоконник. все, реакции нет.
Потом поставил правильные кондеры.
собирал на 13 аттини.


Сообщение отредактировал Magoll - Пятница, 19.04.2013, 13:14
 
ANDEXДата: Пятница, 19.04.2013, 16:25 | Сообщение # 265
Рядовой
Группа: Пользователи
Сообщений: 18
Награды: 0
Репутация: 0
Статус: Offline
Magoll, там с2-0,01 и с4-0,01,
с2 наверное должна быть пленка?
 
MagollДата: Пятница, 19.04.2013, 16:33 | Сообщение # 266
Подполковник
Группа: Пользователи
Сообщений: 141
Награды: 0
Репутация: 0
Статус: Offline
именно после замены С2 у меня пропала зависимость от Т.
 
romic_iz_NijnegoДата: Вторник, 23.04.2013, 21:31 | Сообщение # 267
Лейтенант
Группа: Пользователи
Сообщений: 48
Награды: 0
Репутация: 0
Статус: Offline
Я, конечно, дико извиняюсь, но пойдёт ли прошивка от 25-ой меги на 26-ю ? (ATmega26)
 
MehvzДата: Суббота, 27.04.2013, 03:06 | Сообщение # 268
Рядовой
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Здравствуйте! 
Кто подскажет.
Собрал Гном на тане25 включаю, выставляю 1в на 2-ой ноге при поднесение металла к катушке ничего не происходит меряю напряжение на светодиоде 0.87в забираю метал от датчика 0в , в чем может быть причина, кто подскажет. Все сделал как по книжке менял провода катушки и ничего  sad .
  help Заранее спасибо.
 
bliznecvyДата: Суббота, 27.04.2013, 16:30 | Сообщение # 269
Генерал-майор
Группа: Пользователи
Сообщений: 295
Награды: 0
Репутация: 10
Статус: Offline
Mehvz, Что происходит при включении? Должно быть так-вкл. -короткая трель- старт программы, длинный сигнал-калибровка датчика. Если этого не происходит, перепрошейте камень., проверьте питание, и т.д. Спасибо за внимание smok

Сообщение отредактировал bliznecvy - Суббота, 27.04.2013, 16:31
 
MehvzДата: Воскресенье, 28.04.2013, 02:21 | Сообщение # 270
Рядовой
Группа: Пользователи
Сообщений: 4
Награды: 0
Репутация: 0
Статус: Offline
Да все проходит ка к и Вы пишете но после этого бузер издает трески похоже на жужание с перерывами в одну секунду, напряжение 1в  на 2-ом выводе не могу выставить постоянно скачет. Второй контролер напряжение 1в выставляется на  вив. 3 контролера при поднесение к металлу напряжение зростает з 0в до 0.8в на бузере никакого сигнала.

Сообщение отредактировал Mehvz - Воскресенье, 28.04.2013, 12:12
 
Поиск:


Copyright MyCorp © 2024
Бесплатный конструктор сайтов - uCoz