PDA

Просмотр полной версии : Клавиатурный датчик телеграфного кода



Кукин Николай Николаевич
06.07.2009, 14:51
При повторении клавиатурного телеграфного датчика Антона Бабушкина RK3DOV (http://cqham.ru/cwkeyb.phtml) выявились некоторые особенности работы клавиатуры. При разборе программы решил изменить текст с целью уменьшения размера кода и вставки работы с обычного манипулятора. Первую стадию переработки выполнил, тем не менее баги в программе пока остались. В схеме этого ключа, опубликованной UT2HI на одном из сайтов, перепутана цоколевка выходного ключа у оптронной развязки, поэтому оптронную развязку надо собирать по схеме Антона.
Свой ключ в макетном варианте собрал на АТ90S2313, сохранив распиновку по портам как у 2323.
Измененный текст с комментариями в приложении.
Николай

Кукин Николай Николаевич
07.07.2009, 12:38
Забыл макетку в формате лай

Кукин Николай Николаевич
09.07.2009, 11:44
Прошу прощения, выложил именно макетную, где ошибка в распиновке разъема клавиатуры - перепутано питание.
Прикладываю то, что для настоящего ключа с кнопками.

ux2ix
09.07.2009, 12:16
RU3GA хоть ключ,хоть клава от IBM к ключу,и все на халяву - повторил,кургин в помойке,ну оооочень довольный!
С уважением,Василий.

Кукин Николай Николаевич
13.07.2009, 09:14
Василий, добрый день!
Безусловно, упомянутый Вами ключ RU3GA отличная конструкция. Считаю ее самой лучшей по сочетанию (количеству компонентов + возможности процессора) и возможностями получившейся конструкции из того, что изучал.
Но для меня у этой конструкции есть два главных недостатка:
1.Она сделана на PICe – не хочу пока разбираться с PICами.
2.У нее нет исходников, есть только скомпилированная прошивка. Дизассемблировать прошивку и разбираться, что с ней навертел компилятор из исходников уважаемого автора пока желания нет, т.к. для этого надо тщательно разбираться как со структурой контроллеров, так и системой их команд. На это пока нет времени.
Без этих составляющих мало желания повторять любую конструкцию, т.к. ничего там изменить невозможно, а если есть залет в программе, то тогда необходимо просить автора поправить. А написанную программу, если ее отложил даже хотя бы на месяц, потом сам вспоминаешь с трудом. Поэтому просить автора править прошивку в случае выявленных косяков – это грузить его лишними заботами – дело-то добровольное хошь - повторяй, хошь - не повторяй, разрабатывай свое.
Поэтому решил сделать такую же конструкцию, только на AVR.
При этом, чтобы она могла работать на контроллере с минимальными требованиями к конфигурации. Пока минимум получился 2к по объему памяти программ для возможности работы с клавиатурой и менее 1к. если клавиатуру не надо. Тогда влазит в любой контроллер AVR и, например, для любой Tiny минимум 3 кнопки памяти, но исходник пока не доведен до конца. Занимаюсь тем, что скрещиваю эти прошивки между собой.
Т.к. изначально конструкция Антона RK3DOV имела регулировку скорости только кнопками клавиатуры, а кнопочками регулировать скорость просто в кайф, то приделал ей регулятор скорости на переменном сопротивлении, (макетная плата предусматривает это, а также подключение еще кнопочек и манипулятора для работы обычным манипулятором). Так как при выбранном мною алгоритме реализации псевдо-АЦП (если это так можно назвать) регулировать скорость можно только в паузах между передачей, то алгоритм похоже абсолютно идентичен примененному RU3GA, потому что у него тоже регулируется в паузах. Прилагаемый файл надо вставить в текст программы сразу после метки start:
Будет вид
“…
start:
.include “adc_proc.asm”
.include “rx.asm”
…”
Николай.

Кукин Николай Николаевич
10.08.2009, 13:15
При дальнейшей работе над ключом пришлось сначала довести до ума сделанное ранее.
В отличии от самой первой версии программы на ассемблере, опубликованной Антоном RK3DOV, убрана задержка на передачу длиной в точку,
убрана передача с клавиш Insert,Delete и т.п.,
кроме того убраны собственные баги - "прогрев нити накала" процессора на
старте - (передавалась пауза длиной 256 точек, что создавало видимость
неработоспособности сразу после включения),
исправлены неверные кодировки букв в таблице, например в Q,Y.
В дальнейшем для более быстрого написания логики попробовал использовать Си.
Пришлось перейти на мегу.
Переход на более мощный процик вызвано тем, что при попытке написания логики программы на Си выявилось то, что Си жрет стэк и оперативную память так, что предыдущего процика не хватило - сплошное переполнение стэка в оперативной памяти. Кроме того не хватило флешь памяти программ тоже.
Хотя функционально пока ничего нового в клавиатуре не добавилось.
Программа отлаживалась на Atmega8, хотя работоспособна на любом процике серии мега при перекомпиляции, так как применено ногодрыжество без использования набортных устройств.
При отладке использовалась AVR studio(4.14 beta2 build 580)+ WinAVR20080407.
Подключение выводов по назначению соответствует распределению ног в ключе на At90S2313, описанном ранее.
Вот доработанные тексты на асме и Си.
Николай.

RV3AM
11.08.2009, 23:34
Проблема давно решена еще 3 года назад':super:'
запрограмированные контроллеры я штук по 20 дарил
на каждом слёте вместе с этим описанием (описание старый вариант
ещё не доконца отредактированно последний конечный вариант надо искать на
старых жестких дисках (менял комп)) за то чтобы прислали отзыв ,
но никто более чем восьмидесяти не прислал.
будете в москве и вам подарю ещё остались.см.фото.
Ну не паяют в наших краях нынче даже такие простые схемы
только зачем берут мкк.не понятно (халява что ли).

Фото: СW машины умет принимать на слух с микрофона
тоновый детектор NEC567(замечательно работает)
тон подстраивается 600-1200гц полоса 50гц
и передавть с клавиатуры и манипулятора.
также можно контролировать свою передачу на дисплее
потом выложу фото разных вариантов.

Кукин Николай Николаевич
20.08.2009, 10:00
RV3AM, Андрей, добрый день!
Красивые у Вас работы.
Это у Вас проблема давно решена :super: , а у меня пока все идет медленно, т.к. приходится делать урывками и по ночам :? :cry: :lol: .
У Вас получилось очень удачно и компактно, встраивается в любую конструкцию.
Но в нашей деревне таких контролеров нет, а если и появятся , то цены на них будут больше, чем на мегу. Сужу по соотношению цен на тини и меги.
Меги48 дешевле тинь85 в 2,5 раза.
Именно поэтому пока поставил задачу отработать алгоритм в целом, чтобы потом можно было вливать в имеющиеся в наличии контролёры, а для этого надо перепахивать полностью всю идеологию – переходить на внешние прерывания.
Моргание светиками на клавиатуре не ставил первоочередной задачей, хотя, чтобы оно получилось, тоже пришлось изрядно повозиться, оказалось что это не так просто не зная протокола. Он оказался не чисто квадратный! Пока эти функции работы с клавиатурой не включил в основной текст программы, чтобы не загромождать. Тем более, что обработка пока еще не сделана достаточно корректной с точки зрения полного клавиатурного протокола. До сих пор не учитывается бит четности в основном тексте. Его хотя бы корректно надо сосчитать. Это в программе пока не сделано, т.к. пока только повторил разработку по внешним признакам, оставив логику без изменений.
Когда все доведу до ума, обязательно выложу.
Т.к. нормальное описание протокола на русскоязычных сайтах не встречал, прикладываю то, что нашел, здесь.
Николай.

RU3GA
22.08.2009, 08:56
В дальнейшем для более быстрого написания логики попробовал использовать Си.
Пришлось перейти на мегу.
Переход на более мощный процик вызвано тем, что при попытке написания логики программы на Си выявилось то, что Си жрет стэк и оперативную память так, что предыдущего процика не хватило - сплошное переполнение стэка в оперативной памяти. Кроме того не хватило флешь памяти программ тоже.
Хотя функционально пока ничего нового в клавиатуре не добавилось.


Николай , "что-то тут не так" (@Розенбаум) :) --- переход с асма на Си обычно увеличивает размер проги (не более чем на 15 % при грамотном написании) , но при этом не вызывает никаких проблем со стэками в оперативке.

По поводу исходников --- я их не выкладываю не потому , что мне жалко , а потому , что выкладывание исходников --- это все равно , что "любить" женщину на Красной площади --- советами замучают :)
Если Вам нужно --- пишите в личку --- пришлю исходники (они на Си)

Удачи в новых разработках!
RU3GA
Александр

Кукин Николай Николаевич
24.08.2009, 09:41
Александр, добрый день!
Спасибо, что уделили вниманием эту тему.
По вопросу объема Сишной программы.
Я когда начал перенос с асма на си WinAVR, постоянно следил за тем , как начинает распухать программа.
Функция main() занимает около 200 байт. Занимается установкой стэка и зачисткой памяти. Зачистка памяти нужна только при горячем рестарте. В принципе все это можно отрезать, оставив только установку стэка, если не активировать собаку. Для этого надо лопатить библиотеки. С этим вопросом пока не разбирался – руки не доросли.
А вот дальше начинается.
Почти каждый вызов любой функции – push/pop адреса (call/ret) в оперативку.
Кроме того, все промежуточные величины и переменные хранятся в оперативной памяти, что тоже ее подгружает. До регистров, которые в лёгкую используются на асме, на си при объявлении глобальных переменных можно добраться, только применив спец. приемчики объявления регистровых переменных в разнесенных файлах (так просто объявить регистровые переменные глобальными не получилось)и т.д., чем я естественно заниматься не стал, а просто свалил глобальные переменные в кучу и ушел от побитных операций, заняв под отдельные переменные весь байт - меньше объем кода) . Либо возможно объявлять регистровые переменные только внутри функции, что не устраняет команды пересылки из памяти в регистры и обратно при входе/выходе из функций.
Switch/case дают бОльшей величины код, чем if/else но из-за наглядности анализа приходится идти на увеличение размера кода, чтобы самому не запутаться.
Добавка библиотеки временнЫх задержек сразу увеличивает размер файла примерно на 2 кб из-за операций с плавающей точкой. Только "оптимизация по максимуму" выкидывает из нее лишнее. Не дай бог привязался в 2 байтном цикле задержки к рабочей частоте процессора, где для подсчета числа циклов выполняются вычисления с плавающей точкой(тут я немножко неточно сформулировал, но легче от этого не стало),- не поможет никакая оптимизация, библиотека прописывается в полном объеме.
Обращение к портам. В некоторых случаях команды установки битов проходят как на асме за 1 команду, а в некоторых с промежуточным обращением к оперативке, да еще и отрубом прерываний. Запись в епром длиннее, чем на асме. И там еще много разных дополнительных факторов, увеличивающих код. Во всяком случае у меня так получилось.
Может я действительно чего-то не понимаю.
Как с этим бороться, пока нигде не прочитал нормальных способов заставить компилятор делать то, как хочется тебе, а не ему. Может просто из-за того, что компилятор «гнутый».
А может, что и сложно создать такой компилятор. Хотя для 51 контроллеров видел программу, написанную на Keil C, где функции писались на асме, а потом все в кучу собиралось на С.
Пробовал CodeVision - примерно та же бодяга.
Поэтому пока я пришел к выводу, что для проциков с оперативкой 128 байт и флэшкой 2 К, Си не эффективен, и по нормальному преимущества Си в скорости программирования проявляются , когда флешь перевалит как минимум 4К. Это соответствует 2К пиков, т.к. рекламный ход атмела на меня тут подействовал – у пиков особо оговаривается, что память программ указана в количествах команд, а атмел молчит, что команда занимает 2 байта памяти, везде в описаниях пишут объем памяти в кб и все. Остальное надо додумывать самому. Я на это и клюнул, когда ориентировался на процик с 2кб флешью,думал моно туда все запихнуть на асме, а оно оказывается только 1 кб команд при внимательном рассмотрении вопроса.
По скорости исполнения безусловно с учетом перечисленных выше наблюдений прога на асме исполняется быстрей, и если налететь на критичный к времени исполнения момент, то тут будут очень хорошие грабли.
Вот и получилось, что прога на асме занимает 1400 байт, а прога на Си с точно такой же логикой (логику писал по асмовской, старался один в один) вылазит за 3,3 кб, да и еще сжирает оперативную память напрочь. При попытке запустить отладчик когда размер проги дошел до 1800 байт, он уже не захотел грузить для AT90S2313 из-за перегруза оперативки, пришлось отлаживать для меги.

По поводу Красной площади. Наверно Вы преувеличиваете. Мне вот еще никто «ничеВо» не посоветовал по поводу выложенных текстов, кроме как повторить Вашу конструкцию. Это может означать разное, но наиболее вероятно, что просто никто не вникал в мою женщину, хотя там ведь много неточностей, часть из них оговорены прямо в тексте, часть забыл оговорить, а про некоторые и сам не знаю, но уверен –они есть.
Александр, Вашим любезным предложением я обязательно воспользуюсь, в личку напишу.
Пока выкладываю моргание светодиодами на клавиатуре.
Николай.

RV3AM
24.08.2009, 22:51
Николай здравствуйте!
нашел свой первый датчик
на меги-8 смотрите рис.1 и рис.2
на котором я сначала эксперементировал.
Если интересно
выложите свой MAIL
пришлю вам исходник
правленую мной программу от
Антона Бабушкина.

RV3AM
24.08.2009, 22:53
Ещё фотки моих самоделок.
датчики и машины CW.

RV3AM
24.08.2009, 23:07
Пользуясь случаем.
Эти снимки для RU3GA
Ещё одна самоделка.
Одна из моих любимых и наиболее часто используемоя
конструкция.
Четыре в одном (автономно раз и при вставлении разъёма LPT
автоматом переключается или I2TZK или NWT а также UR4QBP
в зависимости от шнура в
котором сделана схема управления) в конструкции стоит
комутатор в виде мультиплексора 4Х2. управляется 24н.
разъёма LPT.Комутирует управление DDS. - или от ножек порта
или от пика с вашей программой.
но это уже другая тема.
Да простит меня модератор.

Александр ничего не умирает всё живёт.
Даже не смотря на то что тему выкорчевали из нета.
(очень жаль).
Ростки то были пущены.
Только на юго-востоке Москвы мы с ребятами
сделали 12шт. для разных поделок.

Спасибо за проект.
Который послужил также (как и датчик Антона ) толчком для дальнейшего развития конструкции.
Сейчас как я написал это четыре в одном.

blindman
25.08.2009, 12:19
Программа отлаживалась на Atmega8, хотя работоспособна на любом процике серии мега при перекомпиляции, так как применено ногодрыжество без использования набортных устройств.
А вот это зря. Генерировать выходные импульсы можно аппаратно (с небольшой программной поддержкой) с использованием таймера, а принимать данные с клавиатуры - через USART в синхронном режиме. И объём кода меньше будет, и процессор разгрузится

ur4qtp
25.08.2009, 13:36
Лично я выбрал конструкцию RK3DOV потому, что AVReal линуксовый хорошо дружит с AVR. К тому же AT90S2313 и ATtiny2313 в нашем городе можно купить без проблем, чего не скажешь о многих PIC. А разве исходники RK3DOV распространяются свободно? На его сайте не нашёл ничего по этому поводу.
Новая конструкция заинтересовала, хотя и старая меня устраивает. Жаль, на всё новое не хватает времени.

Кукин Николай Николаевич
25.08.2009, 14:26
Всем добрый день!
Андрей(RV3AM)!
Адрес Вам напишу в личку. Заранее TNX!
Вы выложили фото ГКЧ? Приличная конструкция.
Blindman
Андрей, про ногодрыжество я специально подчеркивал это, так как изначально и пытался повторить конструкцию Антона БЕЗ применения
аппаратных средств процессора (кроме таймера, т.к. он есть во всех проциках системы авр). USART еще не рассматривал в плане совместимости с клавиатурным протоколом.
UR4QTP
Простите,не знаю Вашего имени.
Вся конструкция Антона вместе с вариантами исходников выложена на этом сайте.Есть целая статья. Она и послужила мне отправной точкой в работе, о чем я все время и говорил в предыдущих постах.
Это НЕ НОВАЯ конструкция (физически), а всего лишь изменение прошивки. Так , что можете попробовать перешить и добавить регулятор скорости на резисторе, скомпилировав соответствующим образом ассемблерную прошивку из 1 и 5 поста.

Кукин Николай Николаевич
26.08.2009, 15:38
Тескст на ассемблере для АТ902313,мега8 с добавленным светодиодом клавиатуры CapsLock

RV3AM
26.08.2009, 21:44
Николай послал исходники вам
на мыло.
Я не професиональный програмист
специалист в другой области
поэтому не судите мои коментарии
по этой причине не хочу выкладывать сдесь.
Если вам помогут мои исходники
то я буду рад.
Схема утеряна но по исходникам
разобраться можно.
Если не сможете востановить то помогу.

er1ak
28.04.2010, 23:24
Андрей RV3AM, последняя Ваша разработка ключика с клавиатурой мне понравилась, но с прошивкой помогите. :super:

er1ak
28.04.2010, 23:30
Для поля то, что нужно я по по старой привычке с командой и выезжаю,
дома работать сложно и антенн, кроме балконной на прием нет., соседи у нас ( добрые). А Ваш вариант разработки, маленький трансивер и клава чтоб ноут не тащить, самое то.

RV3AM
28.04.2010, 23:54
Сразу не смогу. :oops:
Давно уже ключами занимался.
Компы уже заменил.
Есть точно!
Но , надо в архиве искать.
Найду сразу вышлю
Но только для TINY-45 или TINY -85.
Другие боюсь не сохранились.

Вот первоисточник:

http://rk3dov.da.ru/cwkbd.html

http://www.krs.poltava.ua/page_develop/UT2HI/cw_type.htm


Далее я его просто "навертел" покруче. :crazy:

Добавил макросов ямбический ключ с памятью знака и.т.д.
Спасибо автору RK3DOV выложил свои исходники.

er1ak
29.04.2010, 00:19
ДА! да, я все просмотрел, но когда Вашу статью посмотрел, это-то. :super:
Практически у меня было все готово, по первоисточникам. Но Ваше решение в полной публикации так, и не увидел все полностью. Случайно Вас нашел, наверное это неправильно, что нет Ваши полных публикаций с прошивками, если это не комерческая работа.

er1ak
29.04.2010, 00:21
Будем ждать. :)

RV3AM
29.04.2010, 00:31
ДА! да, я все просмотрел, но когда Вашу статью посмотрел, это-то. :super:
Практически у меня было все готово, по первоисточникам. Но Ваше решение в полной публикации так, и не увидел все полностью. Случайно Вас нашел, наверное это неправильно, что нет Ваши полных публикаций с прошивками, если это не комерческая работа.

Не какая не коммерческая.
Разошлись штук 20 по друзьям в качестве подарка!
Просил только одно : отзыв о работе.
Так никто и не прислал.
Меня всё устраивает я и забыл про это.

er1ak
29.04.2010, 00:34
Понятно, ВСЕ довольны!! :D Зачем писать раз работает! :D

er1ak
29.04.2010, 00:35
Вот и уже живу здесь.. :crazy:

Юрий Несчетный
29.04.2010, 07:32
Но только для TINY-45 или TINY -85.
Андрей, пожалуйста для Tiny-45. Есть у меня их :D .
Спасибо. :пиво: :пиво: :пиво:

Кукин Николай Николаевич
13.07.2010, 10:21
Наконец у меня дошли руки доделать начатое больше года назад.
Благодаря помощи Александра RU3GA (GREAT TNX за исходникиt), получилась вот такая конструкция на Атмеге8.
По пользованию полностью повторяет ключ Александра.
Так как использованный процик имеет вдвое большую по командам программную память и массу набортных устройств, то грех было этим не воспользоваться.
Поэтому внешние отличия сводятся к следующему:
- переключение соотношения реализовано в виде потенциометра. Это позволило использовать только одну ногу процика для этой цели.Если не планируется изменение соотношения, на плате просто ставится джджампер, закорачивающий ногу процика на минус.
-количество ячеек памяти увеличено до 8, объем памяти каждой ячейки пока сделан 48 знаков. Девятая кнопка предполагается для других целей. Пока в стадии отладки. Хотя можно использовать и для 9-ой ячейки памяти.
Для клавиатуры применены правые цифровые кнопки (9 шт) со старой компьютерной АТ клавы.
Расположение такое же, как и на компьютерной клавиатуре. Так как на печатке один ряд кнопок я развернул на 180 градусов, для обеспечения одинакового зазора между крышечками кнопок, сами выключатели раздвинуты на разные расстояния. Это действия становятся понятными только после окончательной сборки клавиатуры. Диоды запаиваются со стороны проводников. Хотя можно и разместить сверху платы между клавишами, но придется переделывать печатку.
Омрачает в этой конструкции только одно. Поставки продукции фирмы Атмел практически прекращены и мега8 стала страшным дефицитом. Куда ни обращался, появление каких-либо мег раньше осени никто не обещает. На имеющиеся остатки микроконтроллеров спекулятивные цены улетели вверх в 3-4 раза.
На забугорных сайтах в переписке дилеры отмечают, что раньше осени не следует ожидать поставок контролеров.
А очень может даже, что вообще семейству АВР пришел кирдык. Кто-нибудь может что –либо разъяснить по этому вопросу?
Схема и печатки в приложении. Прошивка будет чуть позже.
Николай.

blindman
13.07.2010, 13:00
А очень может даже, что вообще семейству АВР пришел кирдык. Кто-нибудь может что –либо разъяснить по этому вопросу?Наиболее вероятным мне кажется такое объяснение. Atmel прекращает выпуск чипов без индекса А, но покупатели не спешат заказывать новые с буквой А, именно из-за новизны, типа "новый, фиг его знает, сколько их там выпускают, может выпуск задержат, уж лучше старые закажем". Дистрибьюторы тоже не спешат склады ими заполнять - из-за отсутствия спроса, а так как старые чипы уже не производятся, а спрос на них есть - то и цены поднимают. Так будет до тех пор, пока не выберут все старые чипы из складских запасов.

Кукин Николай Николаевич
13.07.2010, 13:40
Андрей, спасибо за разъяснение.
Но с буквой А отличие только по энергопотреблению, но в тех киосках, где я спрашивал, сказали, что до октября их тоже нет и не будет. А на тиню13, например подняли цену за 100р. На что я сказал им , что за такие деньги я изучу пики, но применять с переплатой в несколько раз принципиально не буду.
Поэтому ждемс осени.
Николай.

RU3GA
13.07.2010, 18:56
Николай , искренне поздравляю --- нужная (!) конструкция на другом типе контроллера.
И все так же абсолютно бесплатна!

Удачи в конструировании!
RU3GA

Ua3UtA
13.07.2010, 19:17
Куда ни обращался, появление каких-либо мег раньше осени никто не обещает
да,пару месяцев мегау8 в ДИПкорпусе не возят к нам в магазины,меги в СМД еще есть-не знаю надолго ли

ut1wpr
17.07.2010, 17:38
Наконец у меня дошли руки доделать начатое больше года назад.
Благодаря помощи Александра RU3GA (GREAT TNX за исходникиt), получилась вот такая конструкция на Атмеге8.
По пользованию полностью повторяет ключ Александра.
Так как использованный процик имеет вдвое большую по командам программную память и массу набортных устройств, то грех было этим не воспользоваться.
Николай.

Коля, привет!
Я не изменился, какой был ленивый, таким и остался. А посему и вопрос - не кинул бы ты мне свой исходнячок, вкусный ключик получился. Давно хотел такой сделать, но ты помог, сделал всё за меня.
Сашин я повторил, но на 648-м пике, тоже спасибо ему, поделился мыслью в виде сорса. Кое-что поменял непринципиальное. У себя на страничке описывал пару лет назад, мы тогода с Саней интенсивно общались, я пиковский компайлер с его подачи освоил. А хотелось бы принципиальное. Я под себя убрал бы KBD, но добавbk бы ещ` один канал ADC на тон. Ну, там бы посмотрел вапче что к чему... :)
Словом, сочтёшь возможным, или на мою почту или в личку. Заодно научусь файлы в личке аттачить - до сих пор не умею. :)

Кукин Николай Николаевич
18.07.2010, 16:54
Коля, привет!
Я не изменился, какой был ленивый, таким и остался. ...Заодно научусь файлы в личке аттачить - до сих пор не умею. :)
Виктор, привет, я сам это тоже не умею, поэтому надо емыл. Пошлю завтрава.

Теперь по порядку.
Предлагаю самую простую тестовую прошивку на 9 ячеек памяти.
Использование ключа ничем не отличается от того, как его задумал Александр RU3GA.
Некоторые коментарии по конструкции и использованию.
Какие применить диоды. Я не знаю марку диодов, какие поставил себе.
Критерии выбора были - самые дешевые германиевые и маленькие чтоб залезли в плату. Германиевые имеют малое падение напряжения и обеспечивают параллельное включение двух портов. Приобрел по 1руб в киоске. Единственный силовой диод, не показанный на схеме, но имеющийся на печатке для защиты от переполюсовки (у меня на блоке питания можно переключить полярность) это на 1А примерно на 400В какой-то импортный кругленький маленький диод с толстыми выводами.
Переменноые сопротивления. Номинал абсолютно не критичен, 47ком взято, потому, что был подходящий старый совейский резюк с толстой осью, которую удобно крутить и на нее моно надеть толстую ручку. Может быть от 2-3 ком до 51 ком спокойно. Главное, так как он стоит по потенциометрической схеме, необходимо резюк, идущий на +5В, поставить точно такого же номинала, чтобы обеспечить деление питающего напряжения пополам до 2,5 в для нормальной работы АЦП контроллера, которое использовано с внутренним источником опорного напряжения контролера на 2,56В. При маленьком номинале резисторов повышается ток потребления схемы.
По использованию кнопок.
Логикой программы предусмотрен последовательный опрос состояния кнопок, начиная с 1. Последней опрашивается кнопка 9.
Для выполнения операций с двойным нажатием кнопок сначала надо нажимать 1 кнопку и только после этого должно идти нажатие 2,3 или 4 кнопки для смены режимов работы ключа. На кнопках 5-9 используется только либо режим записи в ячейку или воспроизведения записанной информации.Все кнопки срабатывают только после ОТПУСКАНИЯ. Сделано это для значительного упрощения алгоритма обработки нажатия, а подавление дребезга при этом хорошее. Привыкнуть к такой работе кнопок легко.
Если кто-нибудь будет применять звуковой излучатель типа динамика или обычного наушника, через сопротивление вместо конденсатора, необходимо иметь в виду, что эта нога участвует в программировании контроллера. При низком шунтирующем сопротивлении подключенного динамика программирование будет невозможно. Не запаивайте переходное сопротивление в плату до программирования кристалла. Поэтому для отладки поставил емкость, да так и успокоился на этом. Бипер от компъютера слышно хорошо.

//фузы надо настраивать на частоту 2000000, то есть 2мГц

//состояние фузов в прошитом кристалле с экрана при использовании авриала
//
//avreal/WIN32 - AVR controllers LPT programmer by Redchuk Alexandr
//v1.27rev1 (Jan 2 2009 12:49:24) http://www.ln.ua/~real/avreal
//bug-reports, suggestions and so on mail to avreal@real.kiev.ua
//Command:
// -as -p1 +mega8
//Adapter enabled
//Device connected, mega8 detected
//Chip not locked
//Fuses
// OSCCALs = BB BB B5 B6
// BODLEVEL = 1
// BODEN = 1
// SUT = 1
// CKSEL = 2
// BLB1 = 3
// BLB0 = 3
// RSTDISBL = 1
// WDTON = 1
// CKOPT = 1
// EESAVE = 1
// BOOTSZ = 3
// BOOTRST = 1
//Total time 242ms
//Reset pin released
//Adapter disabled
//
Сейчас заканчиваю другой выриант тестовой прошивки, несколько отличающий по функциям от этой.
Выложу позже после отладки.

Николай.

ut1wpr
18.07.2010, 22:55
Виктор, привет, я сам это тоже не умею, поэтому надо емыл. Пошлю завтрава.
Теперь по порядку.
Предлагаю самую простую тестовую прошивку на 9 ячеек памяти.
Спасибо. Я просил исходник. Немного хотел переделать под свою идеологию, которая чуток отличается от Сашиной.
http://www.ut1wpr.newmail.r u/ru3ga_updt/elbug.html



Какие применить диоды. Я не знаю марку диодов, какие поставил себе.
Критерии выбора были - самые дешевые германиевые и маленькие чтоб залезли в плату. Германиевые имеют малое падение напряжения и обеспечивают параллельное включение двух портов. Приобрел по 1руб в киоске. Единственный силовой диод, не показанный на схеме, но имеющийся на печатке для защиты от переполюсовки (у меня на
Применение МОП-структуры на входе порта определяет границу Log_0 и Log_1 в половину питающего. Следовательно, при 5 вольтах питания без разницы, германий в диоде или кремний. Это в TTL-структурах, где вход 0 кончался на уровне 0.7 важно было. Так что прекрасно любой кремняк работает.



По использованию кнопок.
Логикой программы предусмотрен последовательный опрос состояния кнопок, начиная с 1. Последней опрашивается кнопка 9.
Для выполнения операций с двойным нажатием кнопок сначала надо нажимать 1 кнопку и только после этого должно идти нажатие 2,3 или 4 кнопки для смены режимов работы ключа. На кнопках 5-9 используется только либо режим записи в ячейку или воспроизведения записанной информации.Все кнопки срабатывают только после ОТПУСКАНИЯ. Сделано это для значительного упрощения алгоритма обработки нажатия, а подавление дребезга при этом хорошее. Привыкнуть к такой работе кнопок легко.
Как говорят, дело вкуса.
Безусловно, обработка клавиатуры с реакцией на отпускание проще. Это проходили :)
Но мгновенная реакция на нажатие кнопки привычнее. А посему... Ещё один повод не спорить и никого не переубеждать, а переписать "под себя" :)


Если кто-нибудь будет применять звуковой излучатель типа динамика или обычного наушника, через сопротивление вместо конденсатора, необходимо иметь в виду, что эта нога участвует в программировании контроллера. При низком шунтирующем сопротивлении подключенного динамика программирование будет невозможно. Не запаивайте переходное сопротивление в плату до программирования кристалла. Поэтому для отладки поставил емкость, да так и успокоился на этом. Бипер от компъютера слышно хорошо.
Обилие пьезобуззеров как в свободной продаже, так и выковырнутых с убитых мобилок, кордлессов и прочих игрушек позволяют исключить эту проблему :)



//фузы надо настраивать на частоту 2000000, то есть 2мГц
//состояние фузов в прошитом кристалле с экрана при использовании авриала
Разберёмся... :)
Я на avreal давно подсел. Правда не так давно от БайтБластера ушёл на USB, хотя старый остался ещё, иногда с Альтерой приходится иметь дело.
Проблем с HV programming нет - на столе рядом Дракоша отдыхает, ждёт, когда на помощь позовут :)


58809

Если захочешь взглянуть на мои исходняки, с Сашиного разрешения с удовольствием покажу.

Кукин Николай Николаевич
19.07.2010, 09:27
Всем добрый день.
Виктор, посмотрите свою почту.
Почитал Вашу страничку – гд Вы были раньше? :) да, вариант налицо приспособить второй резюк для изменения тона, а смену соотношений унести на клавиатуру.
По вопросу обработки клавиш.
Я достаточно долго обдумывал варианты алгоритмов обработки клавиатуры на самОм ключе. И пока для реализации готовой конструкции остановился на варианте Александра по причинам дубовости (в смысле надежности) работы (когда знаешь, как это работает) и простоты реализации, когда надо быстро получить результат. Получилось быстрое привыкание к последовательности нажатий. В какой-то переписке Александра с повторившими его ключ, читал, что люди жаловались на нечеткую работу клавиатуры, поэтому специально заострил на этом внимание.
Для тестирования предлагаю желающим повторить прибор еще один из вариантов прошивки, где поменяны функции 8 и 9 клавиш.
Теперь они зашиты под передачу контрольного номера в соревнованиях.
Клавиша 8 только только передает немодифицированный номер.
При длинном нажатии на 9 клавишу начинается ввод номера. Структура номера
Префикс – до 15 произвольных букв/цифр.
Порядковый номер QSO от 001 до 9999.
Суффикс – до 15 произвольных букв/цифр.
Эти элементы номера при вводе должны разделяться паузой/пробелом. Если вводить с манипулятора, надо дождаться ответа ключа «R», если с клавиатуры, то нажать клавишу пробела. Количество нажатий пробела не лимитировано, все равно запишется один раз.
После набора номера нажимаем клавишу 9 на той клавиатуре, с которой вводили.
В ответ будет «ОК».
Каждое нажатие на кноп.9 увеличивает порядковый номер QSO на 1.
Пока вроде все.
Николай.

ut1wpr
19.07.2010, 14:12
Всем добрый день.
Виктор, посмотрите свою почту.
Почитал Вашу страничку – гд Вы были раньше? :) да, вариант налицо приспособить второй резюк для изменения тона, а смену соотношений унести на клавиатуру.
Болел я... :)
Спасибо. Почту снял, ещё не смотрел.
Любопытство раздирает. Вечерком сяду разбираться.

Юрий Несчетный
03.12.2010, 13:00
Если интересно выложите свой MAIL, пришлю вам исходник правленую мной программу от Антона Бабушкина.
Андрей, если Вас не затруднит, пришлите мне исходники и прошивки для Тини 45 и 85, которые у Вас сохранились. Адрес мой - (ut5ugl) @ (mail.ru)/
Очень хочется "покрутить" конструкцию под себя. Отзывы гарантирую:-P:super:
Спасибо.

RV3AM
03.12.2010, 16:28
Андрей, если Вас не затруднит, пришлите мне исходники и прошивки для Тини 45 и 85, которые у Вас сохранились. Адрес мой - (ut5ugl) @ (mail.ru)/
Очень хочется "покрутить" конструкцию под себя. Отзывы гарантирую:-P:super:
Спасибо.

Юрий!

По вашей просьбе правда и не только вашей
пол дня сегодня проковырялся со старыми жёсткими дисками.
Просто вам повезло я на больничном .Простудился. Нашёл.
Сейчас пытался протестировать не получилось ,дома не нашлось PS/2 клавы.
Может попозже забегу в гараж.Но завтра с ребятками собираемся возьму точно.

Исходники выкладывать не буду.Дабы избавить себя от ненужных мне коментариев
крутых продвинутых програмистов.Я не профи как могу так и програмирую.
Да и по этическим соображениям, основную прогу написал Антон я только правил под себя.
Исходниками пользовался со странички RK3DOV Антона Бабушкина.
Скачайте и "покрутите" конструкцию под себя.

Юрий Несчетный
03.12.2010, 16:36
Исходники выкладывать не буду
Андрей спасибо за информацию. Буду ждать прошивки.
Исходники, если возможно, бросьте мне на ящик. Я тоже не продвинутый программер, сейчас только осваиваю Атмеги. Обещаю не распространять.
Хотелось бы, не залезая в дебри, на готовой несложной конструкции, поэкспериментировать . Тем более, что Тини разные есть у меня.
Спасибо!

RV3AM
03.12.2010, 17:24
Буду ждать прошивки.

Спасибо!

Сходил в гараж.:-(
Ждите тестирую.

RV3AM
03.12.2010, 23:12
Юрий!
Всё не протестировал.Надоел о.
Какая версия не знаю, было много и давно,
разных: под себя,подарочные и.т.д.
Всё было разложенно пока диск не грохнулся.
Возможно будет небольшое расхождение с описанием.
Прошивать можно ATTINY45 или ATTINY85.

Жду отзывов.

MIKHAEL
06.05.2012, 00:10
Наконец у меня дошли руки доделать начатое больше года назад.
Благодаря помощи Александра RU3GA (GREAT TNX за исходникиt), получилась вот такая конструкция на Атмеге8.
По пользованию полностью повторяет ключ Александра.
Так как использованный процик имеет вдвое большую по командам программную память и массу набортных устройств, то грех было этим не воспользоваться.
Поэтому внешние отличия сводятся к следующему:
- переключение соотношения реализовано в виде потенциометра. Это позволило использовать только одну ногу процика для этой цели.Если не планируется изменение соотношения, на плате просто ставится джджампер, закорачивающий ногу процика на минус.
-количество ячеек памяти увеличено до 8, объем памяти каждой ячейки пока сделан 48 знаков. Девятая кнопка предполагается для других целей. Пока в стадии отладки. Хотя можно использовать и для 9-ой ячейки памяти.
Для клавиатуры применены правые цифровые кнопки (9 шт) со старой компьютерной АТ клавы.
Расположение такое же, как и на компьютерной клавиатуре. Так как на печатке один ряд кнопок я развернул на 180 градусов, для обеспечения одинакового зазора между крышечками кнопок, сами выключатели раздвинуты на разные расстояния. Это действия становятся понятными только после окончательной сборки клавиатуры. Диоды запаиваются со стороны проводников. Хотя можно и разместить сверху платы между клавишами, но придется переделывать печатку.
Омрачает в этой конструкции только одно. Поставки продукции фирмы Атмел практически прекращены и мега8 стала страшным дефицитом. Куда ни обращался, появление каких-либо мег раньше осени никто не обещает. На имеющиеся остатки микроконтроллеров спекулятивные цены улетели вверх в 3-4 раза.
На забугорных сайтах в переписке дилеры отмечают, что раньше осени не следует ожидать поставок контролеров.
А очень может даже, что вообще семейству АВР пришел кирдык. Кто-нибудь может что –либо разъяснить по этому вопросу?
Схема и печатки в приложении. Прошивка будет чуть позже.
Николай.

Этот проэкт дествительно октуален???

Добавлено через 20 минут(ы):


Юрий!
Всё не протестировал.Надоел о.
Какая версия не знаю, было много и давно,
разных: под себя,подарочные и.т.д.
Всё было разложенно пока диск не грохнулся.
Возможно будет небольшое расхождение с описанием.
Прошивать можно ATTINY45 или ATTINY85.

Жду отзывов.
Однако всё выложено здесь. Один параметор Injections fuse date RSTDISBL беспокоит можно потерять AVR при неудачи. Правдо потом и востановить, но в процесе азарта можно потерять интерес. Хотя ног у данного device очень мало ok.

MIKHAEL
06.05.2012, 01:05
Уважаемый Андрей RV3AM !
При внимательном рассмотрении CW-1.jpg, обнаружел очень хороший eq под именем AmEuro, можно ли о нём немного по подробней. По всей видимости это Ваш созданный eq подобие k42cw kb/rd+key Steven T.
LCD1602 rx/tx 2scroll kb+key. Прошу прощения решение cw_dek Francesco M. ik3oil, либо Ваш проэкт в целом? Пожалуйста найдите время и откройте закулисную кухню вашей аппаратной. Хорошие и удачные конструкции просто обязаны жить.

С УВАЖЕНИЕМ , Mike

Ayrel
27.01.2016, 23:42
Собрал схему, ЗАРАБОТАЛА!!!:-P

RV3AM
28.01.2016, 00:00
Собрал схему, ЗАРАБОТАЛА!!!:-P
Какую схему..!???:smile:

UnDroid
28.01.2016, 00:16
RV3AM, здравствуйте. Ваша конструкция - это только датчик кода море, или и декодер тоже?

RV3AM
28.01.2016, 00:23
Датчик совмещённый с ямбическим ключом и памятью знака, декодер от итальянца.

LZ3GN
28.01.2016, 19:42
To: RV3AM Здравствуйте! Я тоже собрал и датчик сработал. У меня два вопроса:
- Как перепрограммируются макроси F1 - F4 "при программировании микроконтроллера";
- Работает ли датчик с USB клавиатуру + переходник. Я пока не пробовал, а найти PS2 доволно трудно.
73! Николай

RV3AM
28.01.2016, 22:50
To: RV3AM /...................
- Как перепрограммируются макроси F1 - F4 "при программировании микроконтроллера";
.................... .................... .................73! Николай

Из описания пункт-6, пост#42

6) Неперепрограммируемы е макросы (записываются при программировании микроконтроллера).


F1 -TEST CALL CALL TEST
F2 -TU UR (RST) NR..
F3 - QRZ? DE CALL
F4 - DE CALL илиCALL(корреспонден та) DE CALL - если предварительно в F9 был записан позывнойкорреспонден та.
Tab-.....DE CALL RST RST BK
Ctrl- СQ CQCQ DE CALL CALL CALL CQ........PSE K
Win- типовое QSO-1
Alt- типовое QSO-2
Shift+@- Версия ,RV3AMмой телефон.

LZ3GN
31.01.2016, 14:56
Понял.
Било написано " Скорость передачи, устанавливается при включении (при желании можно подкорректировать начальное значение переменной INITSPD в программе)." Подумал что есть программа конфигурации перед програмирования процесора.
73! Николай

Ayrel
01.02.2016, 20:34
Собрал схему клавиатурного датчика кода морзе на Tiny45, заработала сразу. Спасибо за схему и прошивку:-P:пиво:.
224554224556
С уважением Аурел!

rw6hkf
20.07.2016, 11:14
Нашёл в загашниках AT90S2313, пытаюсь скомпилить исходный текст Антона RK3DOV для этого процессора, AVRA ругается и отказывается компилить:

Pass 1...
cwkbd.asm(32) : Warning : r26 is already assigned to 'XL'!
cwkbd.asm(35) : Warning : r28 is already assigned to 'YL'!
Pass 2...
cwkbd.asm(46) : Error : Found no label/variable/constant named init
cwkbd.asm(46) : Error : Relative address out of range (-2048 <= k <= 2047)
done

Никто не подскажет, что нужно поправить в исходнике? Сам не силён в ассемблере, увы :(

R1AIT
20.07.2016, 16:05
Кстати. Всякие пики и авр это для искушенных. Остальным можно взять готовую ардуинку, подключить её USB шнурком к ПК, и прошить в неё ключик от K3NG. https://blog.radioartisan.co m/arduino-cw-keyer/ . Для обсуждаемого устройства голой ардуины достаточно, только разъем для клавиатуры распаять и питание подключить. Да, перед загрузкой нужно включить нужные функции в файле конфигурации. Дальше можно добавлять рюшечки по вкусу и иметь не слабое МФУ радиолюбителя за смешные деньги.
Кроме морзе будет бонус в виде Hellschreiber, QRSS HSCW и режима маяка/лисы. Не удивлюсь, если PSK появится вскоре.

Tim
20.07.2016, 16:24
R1AIT (http://www.cqham.ru/forum/member.php?9026-R1AIT) Все это конечно хорошо, но желательно бы описание на русском, как и что и где включать какие функции, и скетч.Лично я совсем не силен в буржуйском, заходил несколько раз на страницу, но так и не понял, что там где и как...

R1AIT
20.07.2016, 16:55
R1AIT (http://www.cqham.ru/forum/member.php?9026-R1AIT) Все это конечно хорошо, но желательно бы описание на русском, как и что и где включать какие функции, и скетч.Лично я совсем не силен в буржуйском, заходил несколько раз на страницу, но так и не понял, что там где и как...
Попробуйте для начала так: https://translate.google.com/translate?sl=en&tl=ru&js=y&prev=_t&hl=ru&ie=UTF-8&u=https%3A%2F%2Fblog .radioartisan.com%2F arduino-cw-keyer%2F&edit-text=&act=url
Местами криво и даже смешно, но понять помогает. :)
Потом можно спрашивать. Я тоже пробовал совсем не много, но в состоянии прочитать. Писать перевод полностью не готов, во всяком случае пока.

R1AIT
20.07.2016, 18:22
как и что и где включать какие функции, и скетч.
Сам скетч открывается по ссылке https://github.com/k3ng/k3ng_cw_keyer/blob/master/k3ng_keyer.ino . Включение/выключение функций в файле keyer_features_and_o ptions.h. Пожалуй стоит создать отдельную тему по этому устройству.
Сделано: http://www.cqham.ru/forum/showthread.php?33606-%CC%D4%D3-%EC%EE%F0%E7%E5-%EE%F2-K3NG&p=1281532#post128153 2

rw6hkf
20.07.2016, 18:49
Кстати. Всякие пики и авр это для искушенных. Остальным можно взять готовую ардуинку, подключить её USB шнурком к ПК, и прошить в неё ключик от K3NG.

Не боги горшки обжигают и всякий путь в тысячу ли начинается с первого шага.

Ключ от K3NG для своего применения, а этот клавиатурный датчик для других целей.

R1AIT
20.07.2016, 21:42
Не боги горшки обжигают...

Ключ от K3NG для своего применения, а этот клавиатурный датчик для других целей.
Это да. Если учиться, чтобы потом с этим работать, то лучше сразу с МК. Или если острое желание платки поделать и попаять. А если без лишней мороки быстро получить работающий прибор, то ардуино + K3NG. Датчиком кода он тоже успешно работает. Тут все зависит от того, кому что нужно быольше. Кому процесс, а кому устройство.

Кукин Николай Николаевич
21.07.2016, 09:18
AVRA ругается и отказывается компилить:

Pass 1...
cwkbd.asm(32) : Warning : r26 is already assigned to 'XL'!
cwkbd.asm(35) : Warning : r28 is already assigned to 'YL'!
Pass 2...
cwkbd.asm(46) : Error : Found no label/variable/constant named init
cwkbd.asm(46) : Error : Relative address out of range (-2048 <= k <= 2047)
done

...Сам не силён в ассемблере, увы :(

rw6hkf, вообще-то сообщения об ошибке компиляции на втором проходе компилятора в строке 46 исходного текста программы можно перевести следующим образом:
"
Pass 2...
cwkbd.asm(46) : Error : Found no label/variable/constant named init
cwkbd.asm(46) : Error : Relative address out of range (-2048 <= k <= 2047)
done
"
"
Проход №2
(46) Не найдена метка/переменная/константа с данным именем
(46) Относительный адрес ("перехода по метке" - пояснение мое) выходит за пределы -2048/+2047
(возможности адресации команды rjmp - пояснение мое)
закончено
"
Если посмотреть исходник из архива cwkbd-30.zip(самая последняя версия Антона), любезно выложенного Антоном на сайте cqham,
то начиная со строки 46 это выглядит так:
"
rjmp init

.org OVF0addr
rjmp timeint ;TIMER

.include "interrupt.asm"
.include "insmacro.asm"
.include "nr.asm"
.include "outbuf.asm"
.include "keytable.inc"

;\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ \\

init: ldi t,RAMEND ;
out spl,t
...
"

То есть скорей всего или Вы потеряли метку "init:" в 59 строке, или,
что тоже может быть, при компиляции через пакетный файл из командной строки,( когда Вы пользовались произвольным текстовым редактором),
при загружении в произвольный тестовой редактор неправильно был интерпретирован перенос строки,
который вместо обычно идущих подряд байтов 0d,0a ,означающих "перевод каретки+следующая строка",
мог иметь вид 0d в исходном тексте. Это бывает хорошо видно при изучении состава текстового файла в двоичном редакторе.
Такое довольно часто встречается в текстовых файлах при конвертации шрифтов в другую кодовую таблицу, происходящих при загрузке разными текстовыми редакторами.
Попробуйте загрузить оригинальный исходный текст Антона в аврстудию и оттуда скомпилировать. Думаю проблема уйдет.

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

Дело в том, что описание ассемблера для авр avrasm/avrasm2 Вы сможете найти наверно только на английском в составе хелпа любой аврстудии, во-вторых оно очень аскетично и рассчитано на людей, уже знающих, как программировать на ассемблере. Да и сам ассемблер довольно аскетичен по сравнению , например с ассемблером для Intel386(286).
А имея понятие о другом ассемблере, например пиковского, или Intel386(286), начать работать с авр-асмом можно практически сразу, ознакомившись с системой команд авр.
Тем более имея под рукой уже отлаженные тексты и работающие программ.

UA9FAL
22.07.2016, 09:05
rw6hkf, вообще-то сообщения об ошибке компиляции на втором проходе компилятора в строке 46 исходного текста программы можно перевести следующим образом:
"
Pass 2...
cwkbd.asm(46) : Error : Found no label/variable/constant named init
cwkbd.asm(46) : Error : Relative address out of range (-2048 <= k <= 2047)
done
"
"
Проход №2
(46) Не найдена метка/переменная/константа с данным именем
(46) Относительный адрес ("перехода по метке" - пояснение мое) выходит за пределы -2048/+2047
(возможности адресации команды rjmp - пояснение мое)
закончено
"
Если посмотреть исходник из архива cwkbd-30.zip(самая последняя версия Антона), любезно выложенного Антоном на сайте cqham,
то начиная со строки 46 это выглядит так:
"
rjmp init

.org OVF0addr
rjmp timeint ;TIMER

.include "interrupt.asm"
.include "insmacro.asm"
.include "nr.asm"
.include "outbuf.asm"
.include "keytable.inc"

;\\\\\\\\\\\\\\\\\\\ \\\\\\\\\\\\\\\\\\\\ \\

init: ldi t,RAMEND ;
out spl,t
...
"

То есть скорей всего или Вы потеряли метку "init:" в 59 строке, или,
что тоже может быть, при компиляции через пакетный файл из командной строки,( когда Вы пользовались произвольным текстовым редактором),
при загружении в произвольный тестовой редактор неправильно был интерпретирован перенос строки,
который вместо обычно идущих подряд байтов 0d,0a ,означающих "перевод каретки+следующая строка",
мог иметь вид 0d в исходном тексте. Это бывает хорошо видно при изучении состава текстового файла в двоичном редакторе.
Такое довольно часто встречается в текстовых файлах при конвертации шрифтов в другую кодовую таблицу, происходящих при загрузке разными текстовыми редакторами.
Попробуйте загрузить оригинальный исходный текст Антона в аврстудию и оттуда скомпилировать. Думаю проблема уйдет.

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

Дело в том, что описание ассемблера для авр avrasm/avrasm2 Вы сможете найти наверно только на английском в составе хелпа любой аврстудии, во-вторых оно очень аскетично и рассчитано на людей, уже знающих, как программировать на ассемблере. Да и сам ассемблер довольно аскетичен по сравнению , например с ассемблером для Intel386(286).
А имея понятие о другом ассемблере, например пиковского, или Intel386(286), начать работать с авр-асмом можно практически сразу, ознакомившись с системой команд авр.
Тем более имея под рукой уже отлаженные тексты и работающие программ.
Ничего не смыслю в программированиии, но чисто для поддержки темы.
Николай Николаевич, читаю твои выкладки и в очередной раз снимаю шляпу. Ну до чего умные мужики в Перми живут :super:

R1AIT
26.08.2016, 10:09
Не боги горшки обжигают и всякий путь в тысячу ли начинается с первого шага.

Ключ от K3NG для своего применения, а этот клавиатурный датчик для других целей.
Это да, конечно. Вопрос: нужнно ли проделывать этот путь полностью если нужный результат рядом, но чуть в сторонке. Ключик от K3NG с этими целями справляется тоже успешно, как и с многими другими. Нет, каждый сам решает что нужнее. Просто IMHO вариант с ключиком проще и быстрее в реализации. Для тех, кому нужен результат побыстрее, а не процесс сборки. Ну, и потом, модернизировать проще, или вообще в другое устройство переделать, когда необходимость пропадет.