| Версия для печати | |
| Конференция: | Конференция iXBT.com (http://forum.ixbt.com/) |
| Форум: | Электронные устройства и компоненты (http://forum.ixbt.com/?id=48) |
| URL: | http://forum.ixbt.com/topic.cgi?id=48:5298 |
Время GMT +04. Даты в формате dd.mm.yyyy. | |
| avr123.nm.ru, 03.03.2006 02:10 |
| Я сделал новую версию краткого курса avr123.nm.ru для начинающих осваивать МК AVR ATmega. Большое внимание уделил разъяснению что такое МК и как он общается с внешним миром. Жду вопросов по курсу и по МК. Постараюсь ответить. Добавление от 03.03.2006 08:55: Кастати вы можете скачать курс одним файлом! |
| 1. Pyku_He_oTTyda, 03.03.2006 09:15 |
| Я понимаю, что за всем не успеть, но свежий ICC (7.03) уже ругается на "putchar" в третьей задаче. А качать старый как то не хочется. Будет изменение по этому поводу и когда? З.Ы. А так очень полезные уроки! Спасибо огромное! |
| 2. Chudik, 03.03.2006 11:32 |
| avr123.nm.ru Когда будет краткий курс по ARM? ![]() |
| 3. avr123.nm.ru, 03.03.2006 12:37 |
| Не буду обещать чтоб не обманывать, но сам я щас увлекся САМомо от Atmel - курс надеюсь будет. а пока начните с caxapa.ru там есть все для старта. Добавление от 04.03.2006 02:48: Обновил страницу-рассказ о малой толике языка Си достаточной для МК |
| 4. Djudik, 06.03.2006 10:31 |
| Во блин! бывает же так. Вчера прочитал половину, сделал 3 задачи и в симуляторе уже запустил проги на МК, потом сам еще поменял в них кое что и все работает как хочу. Спасибо за курс. Коротко и по существу. |
| 5. avr123.nm.ru, 07.03.2006 08:13 |
| Да бывает и так. |
| 6. USER, 07.03.2006 19:40 |
| avr123.nm.ru http://avr123.nm.ru/mkkurs01.htm - Установленый в директорию по умолчанию (C:\ICC) компилятор ImageCraft http://avr123.nm.ru/www.imagecraft.com/ |
| 7. avr123.nm.ru, 08.03.2006 02:26 |
| Спасибо! со временем поменяю. Но линк понятен. ======== Кстати курс можно не читать а послушать ! с помощию программ читалок текстов ! Например - Говорилка http://www.vector-ski.ru/vecs/govorilka/index.htm или Digalo http://www.digalo.com/ Мне понравилось. |
| 8. joptpd, 08.03.2006 09:21 |
| тогда может быть тебе лучше будет сделать видео курс например как работать с отладчиком есть такие проги которые могут писать с екрана причем размер файла там совсем небольшой и нет искажений как мпег4 например camtasia |
| 9. GVAR, 08.03.2006 09:28 |
| а для того чтоб читать этот курс и начать работать с микроконтроллерами , предварительно каков необходим минимальный багаж знаний? что надо выучить - двоичную систему а далее......................... |
| 10. avr123.nm.ru, 08.03.2006 11:07 |
цитата ("joptpd"): Да так сделана страничка проектов одного китайца в америке, очень наглядно. Но я пока только аудио курс планирую на DVD + архив 3 Гб накопленого мной по теме МК и электроники. цитата ("GVAR"): Нужны знания как применять обычные микросхемы и электронику, а МК просто программируемая микруха. Еще нужно понимать что делаешь. Но эти знания можно получить, например в книгах рекомендованых в курсе, в интернете. |
| 11. Dimonij, 08.03.2006 23:37 |
С сайта автора темы прошел по ссылкам, нарыл паскаль для пиков, счастлив безмерно (ну привык я к паскалю) avr123.nm.ru - респект и уважуха!!! ![]() |
| 14. Andrius, 11.03.2006 20:55 |
| avr123.nm.ru В Язык Си для МК, в подразделе Структура программы на языке Си написано: цитата:Но этого самого, восьмого пункта, в документе нет вообще. ![]() |
| 15. avr123.nm.ru, 12.03.2006 05:34 |
| Дак если пунктом 6 появляются прототипы функций, то сами функции (которые щас пунктом 6 идут) перемещаются в пункт 8. так как я не пишу прототипы (они не обязательны, а просто удобны в больших программах) то у меня всего 7 пунктов и 8 соответственно нет ! == всеравно: Спасибо за внимательность и фидбэк. == USB программатор для AVR - сделан на ATmega8 - довольно простой http://www.fischl.de/usbasp/ |
| 16. Djudik, 13.03.2006 10:47 |
| Я сделал его, работает прекрасно на ATmega16 и 128 |
| 17. avr123.nm.ru, 13.03.2006 10:51 |
цитата ("Tahoe"): ======= цитата ("Dikoy"): ============== Странное какое-то сравнение! IAR'у дали : DDRB |= ( 1 << 4 ); - этот сдвиг уже сам препроцессор сделает ! а CVAVR'у дали : DDRB |= ( 1 << PINB.1 ); Этож разные вещи ! ======== Я вообще против сравнения кода, я за выбор компиялтора по удобсту для каждого конкретного юзера. ======== А если уж сравнивать то на проектах не меньше 50% флаши МК - при меньших это лишено смысла. Какая мне разница какой будет занят объем памяти 5% или 20% - ведь в этом случае очевидно МК выбран по колич. ног или по его "железу". А особо скоросные участки полюбому принято на АСМе вставлять либо частоту поднимать. |
| 18. Dikoy, 13.03.2006 16:08 |
| avr123.nm.ru Ну... Ты меня и Tahoe перепутал малёхо... ![]() А во вторых, когда вижну дали DDRB |= ( 1 << 4 ); , он вообще одну строчку сгенерил, SBI ![]() |
| 19. Dimonij, 13.03.2006 22:22 |
Проживающие в Кировском районе Петербурга могли сегодня вечером слышать радостный рев носорога - это был я наваял на паскале простенькую прогу цифрового 2-х порогового компаратора, засунул в пик - все с первой попытки завелось давно такого удовольствия не получал! платку отладочную дольше паял, чем писал прогу. аж сам офигел! хоссподи, как я щастлив, что не надо самому больше регистровые банки переключать! (программатор - понипрог, в варианте пик-онли) |
| 20. spliner, 13.03.2006 22:29 |
| Dimonij. Ну так осталось дать ссылку по-явнее на Паскалевский компилер для PIC-ков.. И.. Это - смотрим на название темы.. И для AVR-ов. ![]() |
| 21. Dimonij, 14.03.2006 08:31 |
| spliner Ну так осталось дать ссыку по-явнее на Паскалевский компилер для PIC-ков.. И.. Это - смотрим на название темы.. И для AVR-ов. не вопрос: http://www.mikroelektronika.co.yu/english/download/ ну и сцылки на сайте автора темы изучаем очень внимательно ![]() |
| 22. Alexandr Iz, 14.03.2006 13:31 |
| avr123.nm.ru Шикарный курс! Граматно написано. Давно на него смотрел всё, порывался перейти на C с асма... Вчера-таки перешёл ![]() Только не нравятся мне встроенные в CodeVision библиотеки для работы со стандартными устройствами типа lcd, rtc, i2c. При переходе на другой компилятор, как быть с библиотеками? Такое ощущение, что проще и нагляднее самому написать. |
| 23. avr123.nm.ru, 14.03.2006 15:39 |
цитата: Извини что перепутал. А я за CVAVR (уже более 3-х лет на нем пишу) и заступался сообщая что разный код взяли для сравнения с IAR. |
| 24. Tahoe, 14.03.2006 16:18 |
| avr123.nm.ru Ты не понял. Либо твой любимый CV, судя по приведённому фрагменту, забыл rjmp сгенерить, либо не весь код был приведён. ![]() Помогите начать работать с микроконтроллерами., #943 (http://forum.ixbt.com/topic.cgi?id=48:1119:943#943) А насчёт "некорректного сравнения" - по-моему уже давно понятно, почему произошла ошибка. ![]() |
| 25. Dikoy, 15.03.2006 18:09 |
| Tahoe Вопрос стоял не в rjmp, а в sbi, вот я и не стал приводить весь код. Вот полный цикл: код: Могу весь листинг выложить ![]() |
| 26. plant, 03.04.2006 08:22 |
| [b]avr123.nm.ru [/b Счетчик Т1 ATMEGA8 не формирует прерывание по захвату, если захват инициирован сигналом компаратора.Все дело симулируется в Протеусе. В чем я ошибаюсь? |
| 27. DrAG0n, 03.04.2006 09:02 |
| автоперевод с транслита: Что-то сайт перестал работать... Открыwается странитса неwмаил.ру... |
| 28. avr123.nm.ru, 18.04.2006 11:58 |
| Сделал заголовок определения всех битов для Mega8 -16 -32 -64 -128 для компилятора CodeVisionAVR только ! http://forums.airbase.ru/index.php?action=dlattach;t…888.0;attach=8380 В Компиляторах ICC, WinAVR и IAR определение номеров всех битов прописаны в заголовочных файлах для каждого МК. ================================================= Включение этого файла позволяет использовать примеры на Си из ДатаШита МК - это очень удобно. Можно просто и удобно создавать маски сразу на несколь бит используя названия бит по ДШ а не их номера. например так: if ((UCSRA & ((1<<FE) | (1<<PE) | (1<<OVR)))==0) { Этот код будет выполнятся если данные приняты на USART без ошибок детектируемых "железом". }; ================================================= Сделан файл на основании заголовков компилятора ICC по ДШ на 2004/12/19 Поместите m8_128.h в папку CVAVR\inc И используйте после стандартного заголовочного файла для используемеого МК: #include <mega16.h> #include <m8_128.h> ================================================= Об ошибках сообщите E-mail me to mail.ru for bbigmak |
| 29. avr123.nm.ru, 25.06.2006 00:15 |
| Чтобы убрать пестроту оформления курса зайдите в меню обозревателя : Сервис -> свойства обозревателя -> общие -> оформление и активируйте 3 верхних чекбокса. Подтвердите изменения. Теперь пестроты не будет. Кстати многие ресурсы интернет смотрятся интереснее в таком режиме ! =========== 24-06-2006 я обновил и архив RAR с курсом для скачивания. 1.9 Мб |
| 30. K_AV, 25.06.2006 11:13 |
| avr123.nm.ru "Чтобы убрать пестроту оформления курса" нужно переоформить курс. У меня, например, твои советы по "обозревателю" не пройдут, т.к. не IE, нужные изменения делаются иначе. Но, как уже писали, пестрота неприятна, но она - не главное, на содержание не влияет. |
| 31. Qwertty, 25.06.2006 17:13 |
| Сравнение компиляторов - http://www.atmanecl.net/EnglishSite/CCCE.htm Как ни странно CV оказывается лучше чем IAR, WinAVR и др. Там два теста, условия равные для всех!!! |
| 32. DrAG0n, 25.06.2006 17:35 |
| там даже оптимизацию не включили.... судя по всему. Чисто дефолтовые установки. |
| 33. avr123.nm.ru, 25.06.2006 18:03 |
| Ссылка на этот тест есть конечно в курсе. Я думаю мой любимый CVAVR создает код раза в 2 больше чем IAR или WinGCC - но люблю я его за удобство работы ! А тестировать компиляторы думаю надо на куске исходника дающего хотябы 1 кб программу на выходе. |
| 34. Qwertty, 25.06.2006 18:37 |
| DrAG0n Все там есть. По крайней мере для WinAvr и CV. Другие не проверял, но там не идиоты сидят и ИМХО знают как сравнить. |
| 35. avr123.nm.ru, 25.06.2006 19:39 |
| На электрониксе обсуждали этот тест и у них получились такие размеры: на IAR по моему 110 у GCC с ключем -O2 130 а вот CVAVR выдал примерно 240. Только я не очень им доверяю потому что просил опубликовать настройки и .hex - но не дождался. |
| 36. Qwertty, 25.06.2006 20:08 |
цитата: Какой из двух? Те кто делал этот тест выпускают IDE для GCC, причем платную. Зачем им приводить такой тест, в котором GCC явно проигрывает CV? Видимо от избытка честности Если бы включение оптимизации изменило бы итоговые результаты, то в табличке были бы совсем другие цифры. В общем пользуйтесь CV - совсем не плохой компилятор, правда с отладкой внутрисхемной у него туго. А Протеус очень поздно поддерживает новые кристаллы, так что он не панацея. |
| 37. avr123.nm.ru, 25.06.2006 21:08 |
| но ведь можно задуматься ПОЧЕМУ поздно ? Я думаю просто это не требуется потому что большинство сидят на "провереных" мегах и МК других семейств. это конечно ИМХО. Добавление от 25.06.2006 21:15: ======= |
| 38. Donetsk, 29.06.2006 18:53 |
| а как можно одним махом скачать самоучитель? честно говоря так читать невозможно - больно пёстро! |
| 39. avr123.nm.ru, 29.06.2006 23:56 |
| как убрать пестроту написано на заглавной и на первой страницах курса. линк на скачку всего курса (1.9 Мб примерно) в верхней части первой страницы avr123.nm.ru/01.htm |
| 40. joptpd, 30.06.2006 08:18 |
| а кто выпускает иде для гцц? атман авр? больше ничего нет да и атман етот тоже какая то поделка студентов надо нечто простое как протеус и мощное как авр студия вмлаб тупой и кривой пока соединиш там то уже и писать код лень жк там тормозит конкретно |
| 41. avr123.nm.ru, 30.06.2006 11:03 |
| Зачем вы так плохо о чужом труде ! некрасиво... Тем более VMLAB бесплатный, и ИМХО вовсе не кривой а очень удобный. Атман кстати имеет мастер начального кода - очень хороший. |
| 42. joptpd, 30.06.2006 17:08 |
| avr123.nm.ru Зачем вы так плохо о чужом труде ! некрасиво... почему бы не покритиковать? КОГДА СОФТ СПЕЛЫЙ, ЕГО КАЖДАЯ СВИНЬЯ ПОЮЗАЕТ (ц) вмлаб платный VMLAB needs a License File, (extension .LIC) to obtain full functionality, otherwise, the simulation will show a time limitation (max 50K CPU cycles), in the following cases: кстати гцц так ето ваще птушный компилятор от криворуких красноглазиков до сих пор смеюсь ответу одного разработчика на вопрос мол зачем убрали макросы манипуляций с битами тут он и говорит мол стандарт си говорит че юзать макросы - плохо ![]() библиотек для работы с жк и прочими стандартными штуками не сделают генератора кода нет жиденький редактор тупой мейкфайл ун разве ето может претендовать на инструмент разработки? вон чего тока стоит конфигуратор железа от иар правда я там тож не нашел либ для индикаторов |
| 43. avr123.nm.ru, 30.06.2006 20:27 |
цитата:вмлаб платный VMLAB needs a License File, (extension .LIC) to obtain full functionality, otherwise, the simulation will show a time limitation (max 50K CPU cycles), in the following cases: ==== а вы в курсе что американцы давеча на луну высадились !? ==== PS - читайте свежие новости ! http://amctools.com/ цитата: |
| 44. joptpd, 01.07.2006 08:55 |
| CVAVR он же вроде большой код генерит или как там щас дело обстоит с оптимизацией? |
| 45. avr123.nm.ru, 01.07.2006 10:08 |
| Да по разному на разных примерах. Где больше чем IAR в 2 раза а где и меньше. Мне размер кода не важен, мне важно удобство работы и правильность кода. |
| 46. mamochka, 03.08.2006 22:32 |
| Читателям курса сообщаю что в библиотеке книг для скачивания и чтения появилась книга: Программирование на языке С для AVR и PIC микроконтроллеров. Шпак Ю.А. МК-Пресс, Киев, 2006, 400стр. ил. Мне понравилась. Кроме того рекомендую обратить внимание на книгу: Евстифеев А.В. Микроконтроллеры AVR семейства Classic фирмы Atmel. III-е издание, стереотипное Москва, Додэка-XXI, 2006, 228 стр. |
| 47. Mosfet, 04.08.2006 00:09 |
| Здравствуйте! Столкнулся с проблемой программирования "фузов" , в ATMega88 с помощью JTAG ICE mk-II. Конфигурационные биты вроде бы записываются, но при попытке верификации выдается сообщение о проблеме с частотой SPI (должна быть 1/4 от тактовой). Записаноое и прочитанное значения конфигурационных байтов не совпадают. Мало того, если прочесть значения фузов несколько раз подряд, то прочитанные значения, в большинстве случаев, оказываются разными. Неисправность микроконтроллера маловероятна, так как при работе с двумя МК проблема имела место в обеих случаях, а отладка по Debug-WIRE и программирование FLASH происходили нормально. Изминения частоты в меню "Board" результатов не дали. Попытки программирования "фузов" предпринимальсь после переведения МК в режим программирования по SPI. Подскажите, пожалуйста, в чём может быть причина? Заранее благодарен. С уважением Виктор г. Киев. mossfet@yandex.ru |
| 48. smr, 04.08.2006 00:21 |
| mamochka где эта библиотека? |
| 49. Chudik, 04.08.2006 00:39 |
| smr где эта библиотека? А ты зайди на сайт, прошерсти всё и где-нибудь в углу найдёшь ![]() |
| 50. mamochka, 04.08.2006 00:45 |
цитата: на заглавной странице курса линк : цитата: и еще на каждой странице курса. адрес курса в названии этого топика. Добавление от 04.08.2006 00:48: цитата: нет, достаточно зайти на сайт, выбрать меню "правка" -> "найти на этой странице" или Ctrl + F и ввести искомое слово. В данном случае слово: "книг" В других браузерах есть аналогичные функции. |
| 51. kirich, 04.08.2006 00:49 |
| mamochka А не проще было дать линк на книгу, типа ввв.авр123\даунлоад\книга.зип ? ![]() Добавление от 04.08.2006 00:55: mamochka Добавление от 04.08.2006 01:01: Ждал, ждал, пока на народе откроется страничка со ссылкой на книгу, так и не дождался. |
| 52. mamochka, 04.08.2006 01:05 |
цитата: я в курсе авторские права не нарушаю, у меня ни чего не хранится. цитата: я думаю что правила форума запрещают выкладывать такие линки. Добавление от 04.08.2006 01:08: === |
| 53. kirich, 04.08.2006 01:11 |
| mamochka я думаю А не надо думать, можно просто прочитать правила. Я что то не помню, что есть запрет на выкладывание ссылок на рапидшаре и слил.ру, если бы был запрет, то ссылка исказилась бы. |
| 54. mamochka, 04.08.2006 01:15 |
цитата: Я не работал с этим МК и инструментом, я программирую "5-ю проводками" или AVR-ISP из компилятора CVAVR. Советую задать ваш вопрос еще и в конфе: http://telesys.ru/wwwboards/mcontrol/index.shtml В ожидании ответа перепроверте соединения и настройки ПО. |
| 55. kirich, 04.08.2006 01:15 |
| mamochka нет, достаточно зайти на сайт, выбрать меню "правка" -> "найти на этой странице" или Ctrl + F и ввести искомое слово. Нда, я попробовал, советую ради интереса попробовать сделать это остальным, смена оформления страничек это детский лепет, тут самая натуральная пошаговая стратегия - найди нужную книгу. Описываю. Попадаем на сайт авр123, потом находим в тексте линк на библиотеку, там открываем рубрику Книги и софт с Walla.com, упс, книги там нет (о том что на Украине скорость связи с народом часто не более 400 байт\сек я вообще сначала молчал), решил сходить по линку - Климатическая техника, литература, информация, софт, остальные линки вообще не по теме, аналогично, поиск по фамилии автора - Шпак, ничего не дал. Зато я побывал на АВР123, lord-n.narod.ru, Walla.com и Lib.ru. Прикольная экскурсия по просторам рунета. |
| 56. mamochka, 04.08.2006 01:23 |
цитата: я щас попробовал и указаный линк первым находится. Добавление от 04.08.2006 01:24: цитата: это модератор пусть решает. |
| 57. kirich, 04.08.2006 01:31 |
| mamochka это модератор пусть решает. Насколько я знаю, линки которые я выложил, ничему не противоречат, а вот вырезка из правил -однако считается нарушением, если Вы умышленно даёте ссылку на свой ресурс (домашнюю страничку), на котором такой информации нет которая явно противоречит в данном случае. |
| 58. mamochka, 04.08.2006 01:46 |
цитата: я ссылку на ресурс не давал !!! у вас глюки наверно. почитайте внимательно (написано 03.08.2006 22:32) Где там ссылка ? |
| 59. kirich, 04.08.2006 01:51 |
| mamochka Где там ссылка ? А название темы не ссылка? ![]() avr123.nm.ru: AVR краткий курс начинающим "с нуля" - avr123.nm.ru - обновлен. Или ты думаешь что человек прочитавший о появлении книги в данной теме пойдет на рамблер.ру? P.S.Извини, но я сам являюсь модератором, в 16 разделах, на внутрисетевом форуме, более 1000 участников и просто так не цепляюсь ![]() |
| 60. mamochka, 04.08.2006 01:54 |
цитата: ВРИТЕ дальше. книга там (по линку "Книги и софт с Walla.com") есть: цитата: и КОНЕЧНО находится по слову "шпак" ======= В том что LordN сделал и добавил на СВОЮ страницу подборку по климатич технике моей вины УВЫ нет. |
| 61. kirich, 04.08.2006 02:04 |
| mamochka и КОНЕЧНО находится по слову "шпак" Еще раз, ради интереса загрузил вышесказанную страничку, ввел слово Шпак, а в ответ тишина. Просмотрел глазами, тоже самое. Есть, конечно вариант что у меня страничка не подгрузилась полностью, но она даже при нажатии - обновить, не загружается полностью, потому я и написал выше, что надо давать прямой линк, а не водить как Иван Сусанин. |
| 62. mamochka, 04.08.2006 02:17 |
| прямые линки на .rar с "народа" не скачаются !!! Опять говорите не зная предмета! |
| 63. kirich, 04.08.2006 02:19 |
| mamochka прямые линки на .rar с "народа" не скачаются !!! Естественно, но они выкинут на страницу для скачивания, с которой можно загрузить файл. Опять говорите не зная предмета! Опять ошибка, как раз знаю. |
| 64. smr, 04.08.2006 02:20 |
| kirich ты думаешь что человек прочитавший о появлении книги в данной теме пойдет на рамблер.ру - я, кстати, примерно так и поступил. Поскольку "сходи на сайт и поищи там ссылочку на другой сайт, на котором, где-то глубоко внутри зарыта ссылка на интересующий материал" - банальное неуважение своего посетителя. |
| 65. Chudik, 04.08.2006 02:35 |
| mamochka я щас попробовал и указаный линк первым находится. Какой? Находится ссылка не на рекомендуемую книгу, а на некий сайт, на котором первым делом высвечивается счётчик кликов. На сайте, в свою очередь тоже нет никакой ссылки на книгу. Только на какие-то другие сайты. ![]() Резюме из всего этого: обсуждаемый сайт поместить в чёрный список, как систему, рассчитанную на наращивание счётчиков посещений. Поскольку материал на самом сайте заслуживает внимания и уважения, то выведение его из чёрного списка возможно при исправлении недочётов и устранении системы, главная цель которой - наращивание количества посещений. |
| 66. mamochka, 04.08.2006 02:59 |
цитата: вот этот: цитата: - Книги по AVR и электронике вообще <- ЧИТАТЬ !!! Это линк на сайт lord-n.narod.ru/index.html на котором размещена библиотека с книгами. В этой библиотеке появились книги о которых я сообщил. цитата: У этого сайта есть хозяин и он решает что там размещать. цитата: не пойму вам то зачем ВРАТЬ ? На сайте lord-n.narod.ru есть ссылка на эту книгу. Вот она: http://lord-n.narod.ru/walla.html#ShpakCforAVRiPIC И ссылки там на другие СТРАНИЦЫ этого сайта, а не на другие сайты http://lord-n.narod.ru/walla.html цитата: Браво ! |
| 67. Chudik, 04.08.2006 03:15 |
| mamochka У этого сайта есть хозяин и он решает что там размещать. Безусловно. Но потакать наращиванию счётчиков двух сайтов за счёт форума я не хочу. И это моё право, как координатора форума, за порядок на котором я отвечаю. Так и будем хвастаться своими правами. ![]() Кроме того, указанная "библиотека" на narod.ru мало того, что имеет скорость загрузки единицы байт в сек, так ещё и страница до конца не качается вследствие этого. А на том огрызке, который скачался ссылку на книгу Шпака нет. На сайте lord-n.narod.ru есть ссылка на эту книгу. Вот она: http://lord-n.narod.ru/walla.html#ShpakCforAVRiPIC Замечательно, вот и разместите у себя список ссылок на рекомендуемые книги, а не на сайт, считающий количество заходов. Браво ! Вы сами добивались этого в течение долгого времени. |
| 68. Steve461, 04.08.2006 09:32 |
| Chudik Кроме того, указанная "библиотека" на narod.ru мало того, что имеет скорость загрузки единицы байт в сек, так ещё и страница до конца не качается вследствие этого. А на том огрызке, который скачался ссылку на книгу Шпака нет. Скорей всего жто следствие "иностранности" Вашей прокси. На Россию и СНГ отдается нормально. |
| 69. Chudik, 04.08.2006 09:41 |
| Steve461 Скорей всего жто следствие "иностранности" Вашей прокси. На Россию и СНГ отдается нормально. Возможно. Но исходный постулат о том, что надо пройти по цепочке, это не отменяет. |
| 70. mamochka, 04.08.2006 10:30 |
цитата: Я то тут ПРИЧЕМ ??? это претензии к narod.ru у меня качается нормально, быстро. |
| 71. kirich, 04.08.2006 12:29 |
| Steve461 На Россию и СНГ отдается нормально. У многих, кого я знаю, связь с народом 400 байт\сек. (это не утрирование, и при скачивании флешгетом, и при серфинге). mamochka Я то тут ПРИЧЕМ ??? Непричем. у меня качается нормально, быстро. Ну вот и выложил бы нормальный линк, если у тебя открывается быстро, а не заставлял народ продираться сквозь дебри страничек, да еще и со счетчиками посещений. цитата из правил - особенно, если на сайте есть рекламные баннеры и/или счётчики; т.е. если просьба явно служит для рекламных целей. |
| 72. mamochka, 04.08.2006 12:44 |
цитата:я не просил ни чего. |
| 73. psnsergey, 04.08.2006 13:39 |
| mamochka я не просил ни чего. Не верь, не бойся, не проси. ![]() |
| 74. mamochka, 11.08.2006 13:40 |
| вот такую схему можно использовать для усиления тока управления затвором мощного полевика. На переходах Б-Э будет падать до 0.8 вольт по модулю. Резистор 20 - 68 Ом. К сообщению приложены файлы: 1.gif |
| 75. psnsergey, 11.08.2006 14:44 |
| mamochka А закон Ома у тебя на сайте есть? ![]() |
| 76. pavlov, 11.08.2006 14:51 |
| mamochka вот такую схему можно использовать для усиления тока управления затвором мощного полевика. На переходах Б-Э будет падать до 0.8 вольт по модулю. Резистор 20 - 68 Ом. К сообщению приложены файлы: 1.gif простите, но это все для пионеров |
| 77. Xradio, 11.08.2006 15:17 |
| mamochka Резистор бы с эмиттеров на базы... или между затвором-истоком последующего узла. (Чтобы затвор не болтался в некотором окне) |
| 78. mamochka, 11.08.2006 15:21 |
цитата: есть /soglasie.htm там и Кирхгоф цитируется и курс ОТЦ в наличии ... |
| 79. Chudik, 12.08.2006 20:27 |
| mamochka Кстати, вот пример, как можно и, имхо, нужно оформлять обучалки для новичков http://www.radiokot.ru/start/mcu_fpga/avr/ ![]() Добавление от 12.08.2006 20:31: Там же и про Протеус - http://www.radiokot.ru/start/soft/proteus/ |
| 80. mamochka, 12.08.2006 21:23 |
цитата: отлично! 1 страничка и все понятно ... сел и поехал ! я ЗА большее число курсов - чтоб каждый мог почитать то что ему интересно. только если не сообщать о них там где новички задают вопросы то новички так и не узнают ни когда об их существовании. |
| 81. Iwashka, 12.08.2006 21:50 |
| Есть предложение!!! При заходе в палату №48 (на страницу 48) есть актуальные темы:new: Локальный вход в архив new: К вопросу о замечаниях за грамотность new: Список полезных ссылок new: Хочу всё знать. Научите меня электронике и работе с микроконтроллерами… new: О СУТИ ДАННОГО ФОРУМА Давайте добавим еще одну: Обучающие курсы по электронике. Куда будем давать ссылки на обучающие курсы, программы, конференции и вообще все, что связано с обучением. Даем ссылку, краткое описание и язык курса. После этого настоящий конфликт думаю будет исчерпан. По крайней мере надеюсь на это, а то не очень приятно заходя на форум попадать на разборки. ![]() |
| 82. Chudik, 12.08.2006 22:26 |
| Вообще-то есть Список полезных ссылок. Но если кто-то соберёт в одной теме такой список исключительно по обучающим курсам и темам, то добавлю ещё объявление. В неё же можно будет поставить ссылку и на "Хочу всё знать. Научите меня электронике и работе с микроконтроллерами…" |
| 83. mamochka, 12.08.2006 22:52 |
| Iwashka не очень приятно заходя на форум попадать на разборки да вроде "разборки" затихли уже. |
| 84. Iwashka, 12.08.2006 22:54 |
| Chudik Вообще-то есть Список полезных ссылок Он очень большой и разносторонний, пока найдешь что надо..... Именно поэтому и ссылки в нем начали повторяться. А здесь конкретно-тематический. |
| 85. Xradio, 14.08.2006 18:13 |
| А Микрочип не дремлет, молодцы! http://www.promelec.ru/news/200508103.html?200508 |
| 86. LV, 14.08.2006 18:59 |
| новость 2005 (пятого) года... |
| 87. mamochka, 14.08.2006 19:07 |
| pic это здорово! http://www.piclist.com |
| 88. STAVBORG, 16.08.2006 02:41 |
| Народ подскажите как можно самым простым способом сэмулировать работу прого для AT90S2313, знаю что у него нет USI, могу взять ATtiny 2313, но где взять софт для PC чтоб вывел содержимое SRAM? |
| 89. mamochka, 16.08.2006 03:04 |
| STAVBORG Народ подскажите как можно самым простым способом сэмулировать работу прого для AT90S2313 рекомендую PROTEUS PROTEUS - Краткий Курс - Самоучитель (http://forum.ixbt.com/topic.cgi?id=48:5709) берете подходящий пример и правите "под себя" |
| 90. Chudik, 16.08.2006 03:17 |
Ура, mamochka, сунул свою ссылку в тему ![]() |
| 91. Steve461, 16.08.2006 11:06 |
| STAVBORG Народ подскажите как можно самым простым способом сэмулировать работу прого для AT90S2313, А что, AVR Studio от самой Atmel уже отменяли? ![]() |
| 92. mamochka, 16.08.2006 11:33 |
| Steve461 А что, AVR Studio от самой Atmel уже отменяли? Только не это ! ИМХО - уж лучше VMLAB размером 4 Mb и скучей возможностей. |
| 93. Steve461, 16.08.2006 13:14 |
| mamochka Только не это ! И в чем же проблемы у "великого и могучего"? |
| 94. mamochka, 16.08.2006 13:38 |
| Steve461 И в чем же проблемы у "великого и могучего"? У него нет проблем, как и у любой программы. Проблемы возникают у пользователей. |
| 95. Steven Deathman, 16.08.2006 14:18 |
| mamochka Естессно есть проблемы со студией, но связаны в основном с моделированием SPI и некоторых похожих хреней. А в остальном - вперед и с песней. |
| 96. Steve461, 16.08.2006 16:15 |
mamochka У него нет проблем, как и у любой программы. Проблемы возникают у пользователей. Очень странное изречение особенно в свете заданного STAVBORG-ом вопроса. А для того, чтобы сделать одну печатную плату Вы порекомендуете LPKF дома завести? Или единственная цель была снова упомятуть шпингалеты? ![]() Стандартные средства разработки от Атмела -- вполне работоспособны. |
| 97. mamochka, 16.08.2006 16:38 |
| Нет ну кому легче скачать 45 Mb скачать чем 4 то конечно Студия! Кому не нужен виртуальный многоканальный осцилограф тому однозначно Студия! Если мешают кнопки, светодиоды и прочий отладочный хлам то только Студия ! Добавление от 16.08.2006 16:41: Steve461 |
| 98. Steve461, 16.08.2006 16:55 |
| mamochka Нет ну кому легче скачать 45 Mb скачать чем 4 то конечно Студия! Многим вполне удобнее найти Студию локально, чем пользваоться краденным Протеусом. Не в кнопках и светодиодах счатье, а в нормальном интерфейсе, который у Студии - весьма и весьма. Вы прекрасно знаете, что первично отвечали не на мой вопрос. Я рад, что Вы любите людей, которые Вас окружают. |
| 99. Chudik, 16.08.2006 19:03 |
| На самом деле всё зависит от того, что именно надо проемулировать. Если чисто программу, то Студия безусловно будет лучше. А если чип с обвеской, то, скорее всего, Протеус. Если бы Протеус имел бы некий интерфейс для получения данных от эмуляторов разных производителей - цены бы ему не было. Впрочем... если он умеет читать файл, открытый другой программой на запись, то такой интерфейс вполне может дать возможность совместной работы с эмуляторами. Софт от TI для эмуляции открывает входные и выходные файлы, связанные с портами или памятью. Т.е. при записи данных в память или порт эмулятор пишет эти данные в файл. |
| 100. mamochka, 16.08.2006 19:32 |
| Steve461 mamochka Нет ну кому легче скачать 45 Mb скачать чем 4 то конечно Студия! Многим вполне удобнее найти Студию локально, чем пользваоться краденным Протеусом. Ну не всех же заклинило на ворованые программы. А некоторые еще и слово VMLAB от PROTEUS могут отличить. Я рекомендую VMLAB - он бесплатный. Добавление от 16.08.2006 19:58: Chudik |
| 101. Chudik, 16.08.2006 20:12 |
| mamochka чем ? да еще "безусловно" ? Тем, что не надо изучать новую программу, новый интерфейс, новые возможности. Студия - это рабочий инструмент с редактором, компилятором, линкером, отладчиком, в котором уже работаешь вне зависимости ни от чего. |
| 102. mamochka, 16.08.2006 20:59 |
| речь то шла о вопросе конкретного человека который НИ С ЧЕМ еще не работал ! уж если тратить время ему на изучение то ИМХО на изучения того что имеет больше возможностей и меньший размер для скачивания. VMLAB в 11 раз меньше студии а PROTEUS почти в 2 - - зато в нем можно и схемы рисовать и симулировать не только несколько МК но и плату развести потом. Да еще посмотреть 200 примеров ! Для неопытного человека это очень хорошее подспорье. Кстати демо протеуса и БЕЗ ВОРОВСТВА скачивается с офф. сайта на 30 дней полностью рабочая только без сохранения проекта, естественно исходники програм сохраняются. Добавление от 16.08.2006 21:09: Chudik |
| 103. LazyCamel, 17.08.2006 09:07 |
цитата: LOL А это ничего что в протеусе модель именно AT90S2313 багованая и конкретно глючит в симуляции ? Там вообще корректно эмулируются модели только с меги8 начиная, ИМХО |
| 104. Donetsk, 17.08.2006 09:16 |
| а где протеус можно скачать? |
| 105. mamochka, 17.08.2006 09:30 |
| Линки на заглавной странице того чему посвещена эта тема. Как пользоваться программой в похожей, известной теме. Добавление от 17.08.2006 09:34: Chudik |
| 106. Chudik, 17.08.2006 09:37 |
| mamochka Нет, это константация факта, заданная ироническим способом. |
| 107. mamochka, 17.08.2006 09:54 |
| т.е. вы считаете "AT90S2313 багованая и конкретно глючит в симуляции" фактом ? я считаю что факт это например: "в моделе ATmega16 не правильно работают выводы PC7 и PC6" |
| 108. LazyCamel, 17.08.2006 10:52 |
| mamochka Не контролируется переполнения стека в том числе. Точнее он - не переполняется. Это то что я нашел сам. Версия 6.7SP3. Есть еще плавающие глюки, до природы которых я просто не докапывался, но прошивки отлично работающие в этом симуляторе - глючат на реальных девайсах. С Мегой8 у меня такого не было ни разу. ЗЫ: В связи с тем что слез на Мегу48 - Протеус лежит на полочке. Студией и VMlab продолжаю пользоваться. Симуляцию аналога теперь предпочитаю делать в Протеле. |
| 109. mamochka, 17.08.2006 11:20 |
| LazyCamel Не контролируется переполнения стека в том числе. Точнее он - не переполняется. Это то что я нашел сам. т.е. конкретный недостаток модели (которая и называетя МОДЕЛЬ потому что она модель и не может быть 100% копией прибора) вы называете "AT90S2313 багованая и конкретно глючит в симуляции" Если найдете время приведите пример проги для переполнения стека и я просимулирую в протеус. LazyCamel Версия 6.7SP3 дак в 5-й версии еще больше багов наверно было ... щас модная 6.9sp4 В Студии новой тоже много багов поправлено по сравнению со старыми - это не значит что Студия плохая программа. |
| 110. LazyCamel, 17.08.2006 11:59 |
цитата: Извините, передергивать я умею не хуже вашего, поэтому не стоит меня кошмарить на ровном месте. Я писал дословно - "А это ничего что в протеусе модель именно AT90S2313 багованая и конкретно глючит в симуляции ?" Не надо читать того, что не было написано. ок ? |
| 111. mamochka, 17.08.2006 12:08 |
| LazyCamel Я писал дословно - "А это ничего что в протеусе модель именно AT90S2313 багованая и конкретно глючит в симуляции ?" т.е. вы считаете что в вышем вопросе не содержится утверждения что "AT90S2313 багованая и конкретно глючит в симуляции" ? но по-руски это именно вопрос с утверждением некоего факта. |
| 112. Xradio, 17.08.2006 15:19 |
| http://gallery.embedders.org/index.php?detail=avr12*…p;show_only_new=0 Хороший человек хороший табак курит... ![]() |
| 113. mamochka, 18.08.2006 13:59 |
| Maxim-ic.com посмешили от души ! Вчера звонят от московских дисрибов - пришли компоненты которые вы заказывали! уже 17 августа. А заказывал я аж 17 апреля. Клоуны. И это при том что на ti.com можно заказать за раз 8 изделий по 5 штук включая ВСЕ msp430 !!! и получить не позже недели на дом. На analog.com урезали до 6 штук в месяц но конечно регистрироваться сколько угодно можно и тоже присылают не позднее 2 недель с Филипин. в FAQ курса я описал процедуры заказа - они очень просты и этот сервис очень удобен для макетирования. ИМХО - Но только не MAXIM ! хотя компоненты у них великолепные. |
| 114. Xradio, 18.08.2006 14:19 |
| mamochka можно заказать за раз 8 изделий по 5 штук включая ВСЕ msp430 !!! и получить не позже недели на дом. И это все "фри сэмпл"? Что-то я не верю уже - раньше пробовал, ничего не приходило. Кроме писем на инглише... "зачем Вам?, что Вы собираетесь производить, какие коммерческие объёмы?" и т.п. |
| 115. mamochka, 18.08.2006 14:29 |
| Xradio Что-то я не верю уже это дело добровольное. темболее mamochke верить тут не принято. я потому и написал это в FAQ - ведь надо правильно обосновать заказ а не писать @мол видел схему в инте хочу спаять пришлите самый крутой msp430xxxxЭ. я не говорю что вы так писали! я просто рассуждаю на тему. |
| 116. slava2004, 18.08.2006 14:57 |
Про TI не знаю, не пробывал, но Аналоговые Девицы шлют подарки исправно ![]() |
| 117. Xradio, 18.08.2006 18:49 |
| Я слышал про таких "коллекционеров" в нашем городе, да и в сети Рунета их немало. Что тут скажешь? - чудаки... Но изрядно подпортившие адрес: "Russia". И валяются у них без дела, не то что не нужные им, а и вообще - никак им непонятные, но именитые маркировкой "паучки". Которых, возможно, не досталось заинтересованным адресатам. Лично я, изучив документацию, оценив свои ресурсы и окончательно определившись с выбором, заказываю дивайсы у реселлеров, и за деньги... ![]() |
| 118. Iwashka, 18.08.2006 22:23 |
| Xradio Лично я, изучив документацию, оценив свои ресурсы и окончательно определившись с выбором, заказываю дивайсы у реселлеров, и за деньги Я уже писал как-то, что заказываю только то, что нужно. И далеко не всегда что можно заказать за ФРИ. Но если что-то идет как фри сэмпл, то не брезгую. Почему бы не взять, если они предлагают, а мне надо?Я так думаю, что каждый заказчик у них в базе зарегистрирован и тем, кто заказывает за деньги, а потом вдруг и фри, то фри они высылают исправно. Ни разу не отказали. Правда я заказываю не более 2-х раз в год. Но все равно как-то уверен, что пришлют. Ни разу не ошибся. |
| 119. mamochka, 19.08.2006 11:16 |
| Фэйрчайлд высылает образцы только тем кто что-то у них уже покупал, хоть дешовенькое даже. |
| 120. Xradio, 19.08.2006 12:31 |
| mamochka Давай потолкуем о возникшей ситуации с гонением отовсюду твоего курса "АVR для начала"? Сам-то как к этому относишься? Лично я остался в полном недоумении и при неприятных мыслях. На "хоботе" забанили ссылку... Если ты добивался именно этого, хотябы так - скандально, но сделать трудное дело - безвозмездно научить дураков в стране дураков, то зачем вообще писал БУКВАРЬ и самоотверженно продвигаешь? Не доказала ли текущая позиция "один против всех!" лишь одно, прожитое всеми, включая тебя... Что наукам и знаниям люди учатся самостоятельно. И лишь те достигают их, кто искренне хочет? Остальных, ни метлой, ни железным кулаком не загонишь в "светлое будущее"... ни за какие коврижки Proteusов и а*р123нм.ру. С этой бедой Ты один не справишься... И вот, в этом спектре... совсем непонятны ёрзания "крутейших" на абсолютно полезном, но уникально бессмыссленном твоём КУРСЕ. ![]() Борис. |
| 121. mamochka, 19.08.2006 13:14 |
| я еще раз повторю - я написал курс чтоб помочь людям которые хотят начать работать с МК. Я не рекламирую курс - он бесплатный и в нем ни чего не предлагается купить, я не даю частных уроков по МК. Я отвечаю на вопросы таким способом который считаю наиболее правильным - где можно подробно прочитать о том что спрашивают при этом я на 100% уверен в том что я сам написал у себя в курсе. Я считаю что если спрашивают: "сколько будет 5 умножить на 6" то не стоит отвечать 30, а нужно дать линк на таблицу умножения. Спрашивающий сам решит посмотреть там ТОЛЬКО ответ или сохранить ее и выучить. |
| 122. Iwashka, 19.08.2006 13:19 |
| Xradio на абсолютно полезном, но уникально бессмыссленном твоём КУРСЕ. Мне понятки сподвижки mamochka. Он хочет в легкой и понятной форме донести до всех жаждущих общие понятия и порядок программирования МК. Его курс расчитан для начинающих, об этом в нем так и написано. Все дело в том, что работать с МК довольно легко, по крайней мере на любительском уровне, где не нужны сложные вычисления (гирлянды, кодовые замки, игрушки и. т.п.) и многие любители, понимая это, ищут подобные курсы. Не заканчивать же для этого ВУЗ или изучать английский для того, чтобы почитать документацию. Лично я уважаю как подобные порывы, так и людей, занимающимся таким делом. Они никому не вредят, и несут людям информацию и знания. Каждый берет то, что ему надо. Иногда мне кажется, что некоторые профи ревнуют. Наверное боятся конкуренции. Ведь подобные курсы читают люди увлеченные и я бы сказал, одержимые. Они обычно быстро продвигаются в этом направлении наступая на пятки профи.Что касается: о возникшей ситуации с гонением отовсюду твоего курса "АVR для начала То если посмотреть внимательно, мы увидим, что вначале на рекламу этого курса никто не реагировал, но потом эта реклама стала появляться с завидной регулярностью и это стало раздражать. Даже меня, относящегося с уважением к людям, занимающимся подобной деятельностью. Дополнительную бурю эмоций вызвало оформление этого курса, который похож не на обучающий, а на развлекательный. Не серьезно. При этом весьма объективные замечания автору встречались в штыки. Ему не раз предлагалось сделать и в строгом техническом стиле и дать ссылку на оба типа курсов, но вместо этого, он предлагает лезть в настройки IE. В общем мне кажется, что многих раздражает назойливость и упрямство mamochka. А так, по другим вопросам, он дает интересные и полезные советы. В общем, если не считать конфликта из-за курса, то общение с mamochka по ряду вопросов считаю и полезным и интересным. |
| 123. mamochka, 19.08.2006 13:26 |
| Iwashka общение с mamochka по некоторым вопросам бывает и полезным и интересным. Уря-а-а-а !!! ![]() |
| 124. Iwashka, 19.08.2006 13:34 |
| mamochka Твой ответ опередил меня, пока я писал, ты ответил. Я тебе (ничего, что я на "ТЫ"?, а то многим не нравится) уже предлагал сделать курс в формате pdf. В колонтитулах укажи свое имя и ссылку на сайт. Колонтитулы, это текст, находящийся вверху или внизу каждой страницы на уровне номера страницы. Кстати, я еще в 90-х делал перевод документации на PIC, который потом оказался на компакт диске ТЕЛЕСИСТЕМ. Там у меня были колонтитулы с ФИО и майлом. Так я года 4 получал письма. И с вопросами и с кусками программ сопровождаемыми вопросом: "А почему это не работает?" Понимаешь, далеко не все имеют возможность сидеть в инете. Некоторые имеют доступ только через клубы. Для них важнее скачать, распечатать и изучать. А ты им этой возможности не представляешь. И это при том, что стараешься донести его до всех. Не понятна мне здесь твоя тактика. mamochka Я поправил формулировку: общение с mamochka по некоторым вопросам бывает и полезным и интересным ALL Подобный порыв у mamochka пройдет. У меня прошел, пройдет и у него. ![]() Сейчас, оборачиваясь назад я понимаю, что подобная деятельность связана с тем, что человек обладая некоторыми знаниями не находит им применения, а это один из способов. Конечно, это еще от натуры человека наверное зависит. Не каждый захочет делать для других просто так. Наверное здесь проявляются не реализованные педагогические наклонности человека. |
| 125. Xradio, 19.08.2006 13:46 |
| mamochka Уря-а-а-а !!! А всё же? Ответишь? ![]() |
| 126. mamochka, 19.08.2006 14:12 |
| Xradio А всё же? Ответишь? я ж ответил вам - вот пост: 19.08.2006 13:14 |
| 127. Iwashka, 19.08.2006 14:34 |
| mamochka Я отвечаю на вопросы таким способом который считаю наиболее правильным И мнение других как я понимаю тебе безразлично. Конкретное предложение, реально помогающее начинающим я внес (о pdf). Больше добавить мне нечего. |
| 128. mamochka, 19.08.2006 14:35 |
| Iwashka 1) уже предлагал сделать курс в формате pdf. 2) далеко не все имеют возможность сидеть в инете. Некоторые имеют доступ только через клубы. Для них важнее скачать, распечатать и изучать. А ты им этой возможности не представляешь. И это при том, что стараешься донести его до всех. Не понятна мне здесь твоя тактика. 1) У меня есть "пдф фэктори" но ПДФ пока не сделал. 2) я на КАЖДОЙ странице курса советую сохранить курс на ПК чтобы иметь возможность ОФФ-лайн искать поиском виндоус то что нужно в курсе! И на 1-й и последней страницах даны КРУПНО линки для скачивания курса одним архивом RAR. На 1-й в самом верху в разделе "как работать с курсом" Напечатать тоже можно из браузера - кликните по принтеру на верху или в меню файл печать и можно на принтер а можно в "формат майкрософт имэйджин". Можно выделить мышкой все что нужно напечатать и напечатать "только выделеное". Добавление от 19.08.2006 14:38: Iwashka |
| 129. Iwashka, 19.08.2006 14:39 |
| mamochka И на 1-й и последней страницах даны КРУПНО линки для скачивания курса одним архивом RAR. На 1-й в самом верху в разделе "как работать с курсом" Напечатать тоже можно из браузера - кликните по принтеру на верху или в меню файл печать и можно на принтер И все будет также пестро? |
| 130. mamochka, 19.08.2006 15:48 |
| Iwashka И все будет также пестро? на чб принтере нет! |
| 131. Iwashka, 19.08.2006 16:01 |
| mamochka на чб принтере нет! Ясно. Серо-черно. Все, что цветное, будет серым. И Ты согласен, чтобы в итоге твой труд так выглядел? |
| 132. mamochka, 19.08.2006 16:02 |
| Ну естественно мне он нравится! я ж его добровольны выложил. |
| 133. kirich, 19.08.2006 16:57 |
| У меня постоянно ощущение, что mamochka-и много, т.е. он везде, и в тему и не в тему, кругом, куда ни глянь. |
| 134. smr, 19.08.2006 19:14 |
| mamochka Ну естественно мне он нравится! - то, что ты пишешь лично мне показалось полезным и интересным, но стиль изложения, в частности "многоцветность" и полный хаос на страницах во многих случаях просто оттолкнет. Твой сайт было бы неплохо "причесать" по части изложения материала, убрать дублирующийся материал, а оставшемуся придать более строгий стиль. |
| 135. STAVBORG, 19.08.2006 19:28 |
| Народ спасибо за бурное обсуждение!!! Но с самого начала вопрос был про ЭЭЭЭмуляляцию, то есть про софт + железо, которые позволили хотябы изредка мониторить SRAM контроллера. А вы обсудили СИИИмулирование, то есть я может и придираюсь к приставке но вопрос был о другом. Лично я щас работаю с VMLABом под его же ASMом и компайлю и симулирую. И все было отлично, пока раз за разом не стали появляться прошивки которые отлично работают на симуляторе, но контроллер после заливки просто неадкватно висит. Постоянно менять текст и переливать софт в ожидании пока нарвешься на BUG грузно, вот я и занялся вопросом реализации простейшего "ICEааа".Всех кто чем то подобным занимался прошу напишите на stasgost@inbox.ru. Повторю что в принципе меня интересует чип 2313, Tiny или 90S(если для него это возможно). |
| 136. K_AV, 19.08.2006 19:31 |
| Xradio Бли-и-и-н. Тут (и в соседних ветках) уж несколько раз предлагали закончить разборки, а ты опять... (прочий оффтоп я тут вытер. Хватит уж, наверное. Все равно без толку, похоже). Iwashka у него же есть "весь курс - одним архивом" для тех, кто не может сидеть "on-line". Так что "твой" PDF - это просто еще один вариант. И на мой взгляд архив - лучше. |
| 137. STAVBORG, 19.08.2006 19:39 |
| Кстати о PROTEUSе. Скачал Demку с офиц сайта , потом с kazus.ru более старые и уже крякнутые версии и почему-то все проги при попытке запустить симулятор пишут одно и тоже "error opening netlist LISAXXXX. " не помню расширения файла; ХХХХ - номер для каждого проекта свой. Может кто-то и знает в чем может быть дело. |
| 138. mamochka, 19.08.2006 19:59 |
| STAVBORG я щас работаю с VMLABом под его же ASMом и компайлю и симулирую. И все было отлично, пока раз за разом не стали появляться прошивки которые отлично работают на симуляторе, но контроллер после заливки просто неадкватно висит. дело может быть в железе. посимулируйте hex в астудио или proteus - если там будет нормально работать то точно у вас что-то с железом. если не трудно дайте глючный hex и схему. одно и тоже "error opening netlist LISAXXXX. " не помню расширения файла; думаю в пути к temp или других путях встречаются русские символы. Сделайте пользователя с именем латинскими буквами. |
| 139. Chudik, 19.08.2006 20:01 |
| STAVBORG Давай мы не будем здесь обсуждать проблемы запуска крякнутых версий. Не принято, знаешь ли. |
| 140. STAVBORG, 19.08.2006 20:04 |
| Шью с помощью STK200 - сделал буферок с LPT. прога - плавное изменение частоты где-то с 1 Гц до 1 кГц файл .asm вышлю вечером. |
| 141. mamochka, 19.08.2006 20:29 |
| и hex ! |
| 142. chuchxe, 11.09.2006 13:04 |
цитата: Самое простое это использовать VMLAB. |
| 143. olegboroda, 11.09.2006 15:20 |
цитата (kirich):По TV "1+1" показывали "МАТРИЦУ", то когда агент Смит размножался (самокопировался), я mamochka (или AVR ОдинДваТри. чего-то там) вспомнил... Когда его забанили, я резко выступал в его защиту. Но когда он превратился в вирус, то... ![]() |
| 144. chuchxe, 18.09.2006 00:06 |
| Внизу первой страницы курса: forum.ixbt.com/topic.cgi?id=48:5298 добавлена удобная система поиска аналогов отечественных и импортных транззисторов микросхем и диодов, а так же сводные таблицы с краткими параметрами. Идеально для подбора замены в схемах. |
| 145. Rebbe, 11.12.2006 19:02 |
| Подскажите как адаптировать прошивку для 90s2313 для использования с тини2313 ? |
| 146. Xradio, 11.12.2006 22:20 |
| Наверное понадобится исходник. Вернее его коррекция с созданием нового дампа прошивки. В аппнотах AVR озвучены отличия. |
| 147. Abakt, 16.01.2007 16:18 |
| Начал изучать курс. Пока делаю виртульно в симуляторе. В основном все ясно - спасибо. Но у вас написано что таймеры в некоторых АВР могут считать до 64 Мгц - я не могу понять откуда вы это взяли ? я читал даташиты и там написано что таймеры считают максимум с частотой такта, а он вроде 24 МГц максимальный для АВР ? я не прав ? |
| 148. Pyku_He_oTTyda, 16.01.2007 17:51 |
| Можно тактировать от встроенного PLL генератора на 64 МГц (в некоторых есть) |
| 149. Abakt, 16.01.2007 19:08 |
| Да на атмеле нашел про новые ATtiny261 ATtiney461 ATtiny861 - таймеры до 64 MHz! An internal 8-MHz RC oscillator and an on-chip PLL in these three 20-pin TinyAVR flash-microcontroller devices provides a 10-bit timer/counter at 64 MHz. The timer/counter includes three independent PWM generators and programmable dead times. www.atmel.com Значит в курсе правда написана. |
| 150. MaxVovk, 17.01.2007 04:10 |
| Не совсем в тему, но полезно. Пожег случайно старый заслуженный AVRISP. Народ посоветовал новый AVRDragon. Купил, штука прелестная - ISP и JTAG в оном флаконе, правда до 32kB. Рекомендую. Ко всему прочему штука в 1.5 раза дешевле российской копии JTAGа, ну и фирменная отладка - эт фирменная отладка . |
| 151. Abakt, 19.01.2007 19:03 |
| MaxVovk AVRDragon. Купил, штука прелестная - ISP и JTAG в оном флаконе, правда до 32kB. а где купили и почем ? |
| 152. 'Vlad', 20.01.2007 06:30 |
Abakt - Новая инкарнация mamochka и иже с ним? ![]() |
| 153. Dikoy, 21.01.2007 05:25 |
| smr в частности "многоцветность" и полный хаос на страницах во многих случаях просто оттолкнет. Меня лично бесит только отсутствие навигации... Зачем навязывать последовательность таким образом?.. В онлайне читать невозможно - хрен вернёшься на давно пройденную страницу, надо заново всё листать... В итоге читал исключительно в архиве. А пестрота мне, например, побоку. Хоть и выглядит несколько эээ... Чудновато ![]() убрать дублирующийся материал А вот этого не надо. Иногда бывает полезно. 'Vlad' Новая инкарнация mamochka и иже с ним? Посмотрим по количеству ссылок на 123 ![]() |
| 154. MaxVovk, 21.01.2007 13:14 |
| Abakt Купил в Терраэлектроника. Вообще ехал за жтагом олимексовским, но сходу запал на дракона, и не ошибся. Стоил ~1900р. А энергию mamochka да в нужных бы целях... Например написать курс для АРМа. Только не такую аляпистую, а систематизированную, желательно с открытой для добавления базой знаний... |
| 155. Abakt, 21.01.2007 14:02 |
| Dikoy Меня лично бесит только отсутствие навигации... строителя автопилота это не может не волновать ! ![]() |
| 156. Chudik, 24.01.2007 21:45 |
| 'Vlad' Abakt - Новая инкарнация mamochka и иже с ним? По адресу вроде бы не он... Хотя не исключено. Последняя инкарнация была в виде реббе (или как-то так) |
| 157. Abakt, 28.01.2007 20:49 |
| Chudik вот пример, как можно и, имхо, нужно оформлять обучалки для новичков http://www.radiokot.ru/start/mcu_fpga/avr/ Да, классная обучалка ! Если новичок попробует собрать http://www.radiokot.ru/start/mcu_fpga/avr/05/ то долго он будет пытаться прошить AVR ... Сплошные технические ошибки по всем материалам сайта. |
| 158. Chudik, 28.01.2007 21:18 |
| Abakt Сплошные технические ошибки Я про оформление вообще-то. Думаю, авторы сайта будут благодарны за указание на ошибки. |
| 159. Tahoe, 28.01.2007 21:25 |
| Abakt Сплошные технические ошибки по всем материалам сайта. А это имеет хоть какое-то отношение к: вот пример, как можно и, имхо, нужно оформлять обучалки для новичков ??? ![]() |
| 160. An_private, 28.01.2007 21:41 |
| Abakt Если новичок попробует собрать http://www.radiokot.ru/start/mcu_fpga/avr/05/ то долго он будет пытаться прошить AVR Э. Почему? Вроде нет там на схеме никаких ошибок. |
| 161. Abakt, 28.01.2007 21:56 |
| подтяжка ресета 300 ом и светодиоды повешены на линии програмирования - грамотно! Особенно при свободе других ног. |
| 162. An_private, 28.01.2007 22:06 |
| Abakt подтяжка ресета 300 ом и светодиоды повешены на линии програмирования - грамотно Ну и что? Да, жестковато, но работать будет. В байт-бластере стоит 74hc244, у нее выходной ток порядка 30 мА, а 300 Ом при 5В это 16 мА. Так что вполне работоспособно. |
| 163. Abakt, 28.01.2007 22:17 |
| An_private Так что вполне работоспособно. В учебном материале нужно писать не так что может работать а так как правильно. Вы считаете правильно ресет подтягивать к питанию 300 Ом ? Или правильно как в AVR040 и AVR042 написано ? Добавление от 28.01.2007 22:18: И вешать светодиоды на линии программирования тоже правильно ? |
| 164. An_private, 28.01.2007 22:27 |
| Abakt Хм. Вроде как речь шла: Если новичок попробует собрать http://www.radiokot.ru/start/mcu_fpga/avr/05/ то долго он будет пытаться прошить AVR Как выясняется прошивка работать будет, то есть результат достигнут. А дальше человеку все равно надо будет массированно читать даташиты и аппликухи, так что разберется. Схема неоптимальна? Да. Но для первой задачи вполне допустима. Впрочем, по-моему, пошел сильный оффтоп. Стиль "кота" мне лично понравился. С удовольствием прочитал его несколько уроков. На AVR123 заставить себя прочитать не смог ни одного - просто в этой бесконечной каше найти полезную информацию нереально. Хотя буквально на днях разбирался с работой с LCD и такой урок там есть. В результате предпочел изучать даташит на контроллер. |
| 165. slog2, 28.01.2007 22:34 |
| An_private Схема неоптимальна? Да. Но для первой задачи вполне допустима. По моему у нее слишком много шансов стать генераторм глюков. Для первой задачи это тем более не допустимо. А AVR123 это точно, каша, не читается. |
| 166. Abakt, 29.01.2007 00:44 |
| An_private На AVR123 заставить себя прочитать не смог ни одного В результате предпочел изучать даташит на контроллер. ИМХО - прекрасный результат для курса: заставить человека читать даташит. |
| 167. Tahoe, 29.01.2007 00:58 |
| Abakt А тебе обязательно надо "любой ценой оправдаться"? ![]() |
| 168. Abakt, 29.01.2007 01:17 |
| Qwertty Все там есть. По крайней мере для WinAvr и CV Для WinAVR маловато - очень хороший компилятор. Есть только начало работы в конце страницы 4 и оформление прерываний на странице 3. Хорошо бы и примеры были для WinAVR. |
| 169. gouver, 29.01.2007 17:49 |
| Прочитал курс и проделал упражнения до 8-го. Все работает. Я правда делал на макетке Олимекс а не в симуляторе. Спасибо автору все понятно. Но есть вопрос по мастеру CVAVR. При создании программы он предлагает разместить глобальные переменные после описания обработчиков прерывания - вот так: #include <90s8535.h> // External Interrupt 0 service routine interrupt [EXT_INT0] void ext_int0_isr(void) { // Place your code here } // Declare your global variables here void main(void) { а в курсе на странице 5a.htm указана структура программы и там вначале объявляются глобальные переменные в пункте 4. А затем в пункте 5 описываются обработчики прерывания. Как все же правильно - как мастер CVAVR делает или как у в курсе написано ? |
| 170. slog2, 29.01.2007 18:03 |
| gouver Переменная должна быть определена до ее использования. Ну а дальше сам можешь решить где им быть. По моему правильнее до программы. |
| 171. gouver, 29.01.2007 19:25 |
| да и в курсе написано на странице "Си для МК" pid.by.ru/05a.htm - "Перед использованием переменной в Си её необходимо объявить, т.е. указать компилятору какой тип данных она может хранить и как она называется." Почему мастер так поступает не ясно. Возможно ошибка. Я написал автору CVAVR - попросил исправить. |
| 172. Abakt, 18.02.2007 10:23 |
| новый CodeVision 1.25.3 можно скачать http://www.roboforum.ru/viewtopic.htm?p=11560 Добавление от 18.02.2007 10:25: slog2 |
| 173. Sony_Sony, 05.03.2007 13:32 |
| вот нашел: roboforum.ru/viewtopic.htm?t=2215 Proteus 7.1 вешел. можно скачать демо версию. в ней нет сохранения проекта или изменений. |
| 174. An_private, 05.03.2007 13:42 |
| очередная реинкарнация? честно говоря уже задолбал. модераторы, забаньте его наконец... |
| 175. NITRONIX, 05.03.2007 14:27 |
| Sony_Sony вот нашел: roboforum.ru/viewtopic.htm?t=2215 Да неужели! Случайно? Я лично тебе искренне верю! ![]() An_private очередная реинкарнация? Угадал! Посмотри сюда http://www.pro-radio.ru/controllers/3648/ |
| 176. Tahoe, 05.03.2007 15:11 |
| An_private Да ладно тебе. Я понимаю, что ранее он уже оскомину набил, своей навязчивостью. Но тут-то, его локальная тема. Пока он в её рамках держится, по мне, так пусть хоть тыщу постов напишет "123 - рулез". К тому же, имхо, у него достаточно полезного есть ( ну или было было, давно смотрел ). Другой вопрос, что он от этого полезного сам же и отталкивает. Точнее отталкивал. Вроде сейчас поспокойнее. |
| 177. psnsergey, 05.03.2007 15:43 |
| Tahoe О, с повышением! ![]() |
| 178. An_private, 05.03.2007 15:54 |
| psnsergey О, с повышением! сперва увидел повышение количества банов с 1 на 2 - подумал "ничего себе повышение" Потом уже понял о чем речь ![]() |
| 179. Tahoe, 05.03.2007 16:41 |
| psnsergey На само деле имхо зря меня повысили. Мне до тебя или до spliner - как до луны. ![]() An_private Да я спокойно отношусь, как к тем, так и к другим "повышениям". ![]() |
| 180. psnsergey, 06.03.2007 12:09 |
| Tahoe Мне до тебя или до spliner - как до луны. Ой, не прибедняйся. ![]() |
| 181. Alexander3, 06.03.2007 15:41 |
Жаль, в малочитаемой ветке. Сейчас бы комплекс неполноценности в манию величия перековали. Имхо. ![]() |
| 182. Sony_Sony, 07.03.2007 15:06 |
| MultiSim 10.0 - поддерживает симуляцию МК и излечен ! http://kazus.ru/forum/topics/6534.html |
| 184. Sony_Sony, 10.03.2007 11:59 |
| 300 Mb. Не советую вам скачивать все пакеты. Я уверен - что дисассемблировать вам трудно будет - там все равно много ручной работы. Давайте ваш проект с прошивкой и я попробую в PROTEUS запустить его. Добавление от 10.03.2007 12:00: Какая цель дизассемблирования у вас ??? |
| 187. Sony_Sony, 11.03.2007 12:01 |
| КРОКОДИЛ Хотел попросить кого нибудь из опытных програмистов переписать программу на более легкодоставаемый и более легкопрограмируемый современный камень. Короче - если проект вас устраивает и вы сможете купить микросхемы то вот вам программатор для этого контроллера - http://arvresearch.nm.ru/lptboom/index.dhtml |
| 190. Tahoe, 12.03.2007 03:19 |
| КРОКОДИЛ Кстати что обозначает - equ ?-в учебнике почемуто так и не нашел Сокращ. от equal (http://www.lingvo.ru/lingvo/Translate.asp?LingvoAction=translate&Ln=1&words=%26%23101%3B%26%23113%3B%26%23117%3B%26%2397%3B%26%23108%3B&DoNotSave=0&text=equal&LangPara=1&B1=%CF%E5%F0%E5%E2%EE%E4) |
| 192. Tahoe, 12.03.2007 07:11 |
| КРОКОДИЛ А что тут объяснять? Вроде после перевода всё и так стало ясно. Вместо загадочного "18h" далее в тексте будет использоваться более понятное "Digit0". Согласись, что какое-нить LED=ON понятнее, чем 0x1482=22h. ![]() |
| 193. Sony_Sony, 12.03.2007 09:05 |
| КРОКОДИЛ что обозначает - equ Digit0 equ 18h Значит "подстановка" - везде далее в тексе програмы "Digit0" написаное программистом будет заменено на число "18h" при ассемблировании. |
| 195. Sony_Sony, 13.03.2007 09:22 |
| В калькуляторе виндоус переключитесь в инженерный вид, выбирете 16-ричный режим и введите - 16A8 - затем переключитесь в десятичный и посмотрите. МК то 8-ми битный - он оперирует байтами. Поэтому с большими числами приходится работать по-байтно. Поэтому для начинающего удобней на Си писать - там обычные арифметические операции допустимы и с очень большими числами. |
| 196. An_private, 13.03.2007 10:52 |
| КРОКОДИЛ Простыни принято засовывать в тег code. Тогда они не отображаются полностью и не теряют форматирования. |
| 197. Sony_Sony, 13.03.2007 10:53 |
| Делать нужно так - загоняешь исходник в среду разработки - MPLAB с microchip.ru например и добиваешься безошибочного ассемблирования ЭТОГО исходника. Потом проверяешь в PROTEUS что он работает - выдает на ногах диаграмы похожие на те что в даташите на синтезатор. ========= ТОЛЬКО ПОСЛЕ ЭТОГО - можно приступать к модификации. Вам нужно попросить кого-то занимающегося ПИК'ами - т.е. у кого MPLAB стоит на ПК и кому это просто сделать - вам вышлют уже проект который ассемблится и вот его можно уже проверять в ПРОТЕУСе и модифицировать. PROTEUS тоже может ассемблировать такой исходник но могут быть нюансы, так как он наверняка написан в MPLAB. Добавление от 13.03.2007 11:34: MPLAB Добавление от 13.03.2007 11:43: === |
| 199. An_private, 13.03.2007 12:11 |
| КРОКОДИЛ Они туда полностью не влазиют Что значит не влазят? В начале ставишь code, в конце /code и все. Тогда вместо всей простыни у тебя будет отображаться только окно, в котором будет весь текст. |
| 201. Sony_Sony, 13.03.2007 12:29 |
| КРОКОДИЛ -нужно чтоб хоть один раз кто нибудь расказал как это делается Да качаю я ... качаю ... |
| 203. Sony_Sony, 13.03.2007 13:14 |
| Скачал MPLAB 7.50 сделал - все нормально сассемблилось. Вонинги только о переключении банков - просто чтоб внимание уделить. Щас попробую в PROTEUS запихнуть. вот архив с проектом - http://slil.ru/24071301 Добавление от 13.03.2007 14:22: |
| 204. An_private, 13.03.2007 14:44 |
| КРОКОДИЛ На прошлой странице nicname давал мне декомпилированную прошивку и она ролностью не поместилась Так там около 1000 строк. |
| 206. Sony_Sony, 13.03.2007 15:13 |
| в архиве все. |
| 208. nicname, 14.03.2007 07:45 |
| КРОКОДИЛ Проверь почту ~ 1Мбайт(+ ReAVR)! Только тебе это не подойдёт - у тебя ведь камень ...89...51 ??? Проглядел я однако , извини .... |
| 209. An_private, 14.03.2007 10:28 |
| КРОКОДИЛ константы достаточно изменить только в "шапке" программы? или за ними нужно гонятся по всей программе? Там, где они объявлены. Они для этого и придуманы - чтобы не искать в тексте программы вхождения нужного числа, а один раз объявить в начале и все. |
| 210. nicname, 14.03.2007 11:33 |
| Не , по-моему его почти вручную надо дизассемблировать .... Добавление от 14.03.2007 11:49: цитата:Sony_Sony Ты уж определись , для какого-этого твоя ветка - многостаночник , блин .... |
| 212. Sony_Sony, 14.03.2007 15:19 |
| КРОКОДИЛ А можешь на каком то конкретном примере обьяснить как большие числа распределяются на байты??? Прекрасный пример - калькулятор виндоус в инженерном режиме - набирай разные числа в десятичном виде и смотри их в 16-ричном. Ну и в сети полно книг по информатике и программированию. |
| 214. Sony_Sony, 15.03.2007 08:41 |
| Главное вежливо... |
| 216. Sony_Sony, 16.03.2007 08:30 |
| Побайтное отображение есть - если значть что такое байт - вот он там cvavr.nm.ru/05.htm расписан - "Различные представления числа" А регистры зачем ? Чтоб разобраться как числа представляются в различных системах регистры не нужны. |
| 217. K_AV, 16.03.2007 10:40 |
| КРОКОДИЛ Для начала забудь про байты. Есть число, которое нужно представить в двоичной системе счисления. Чем больше число - тем больше двоичных разрядов понадобится. Т.е. кол-во этих разрядов может быть любым - по потребности. Теперь вернемся к МК. 8-разрядные МК могут оперировать с байтами (группами по 8 бит, упорядоченно записываемых от младших к старшим). Т.е. запись "твоего" числа дробится на группы по 8 бит, начиная от младших разрядов. Если кол-во бит не кратно 8 - число дополняется нулями в старших разрядах (они ведь значение числа не изменят? а правило группировки ровно по 8 бит выполнится). Вот ты и получил многобайтную запись своего исходного числа. В памяти это число размещается как несколько байт, записываемых подряд. При работе с этим числом ты должен заранее знать, из какого кол-ва байт оно состоит, и брать все эти байты одновременно и в нужной последовательности. В твоем примере "0x16A8" - это два байта, записанных подряд "16" и "A8" (т.е. число 16-разрядное двоичное). И рассматривать их нужно вместе. 0x16A8 = 5800. В Виндовом калькуляторе (в инженерном представлении) действительно удобно переводить числа из одной системы счисления в другую. Хочешь пример - пожалуйста: 147512 = 0h02.40.38 = B00000010.01000000.00111000 Точки я поставил условно по границам байт. Подчеркнутые нули как раз "дополнительные", введенные для выравнивания записи числа по байтам. "Незначащие" левые нули обычно не пишутся (в "калькуляторе" в том числе не отображаются). Так понятно? |
| 218. Sony_Sony, 16.03.2007 13:31 |
| K_AV упорядоченно записываемых от младших к старшим). наоборот - мы же с лева на право пишем и читаем. Добавление от 16.03.2007 13:33: K_AV |
| 219. K_AV, 16.03.2007 14:34 |
| Sony_Sony (или "Мамочка", кажется, был одно время) Мне объяснять "Что эти байты означают в десятичной и двоичной системе смотрите там..." не нужно, я в курсе. И я на твой сайт не пойду все равно (аллергия). Насчет "мы же с лева на право пишем и читаем" - У тебя была (да и есть еще) возможность объяснить КРОКОДИЛ то, что ему нужно - так, как ты хочешь. Он пока не удовлетворен тобой - я пишу так, как считаю нужным. |
| 221. Бэтмэн, 16.03.2007 14:58 |
| 0b01010101 - двоичное 128 - десятичное $48 или 0x48 - шестнадцатеричное |
| 223. Tahoe, 16.03.2007 16:13 |
| КРОКОДИЛ И сразу, пока не привык, забудь такое понятие "байт". Есть понятие "слово". А уж скольких разрядное слово - дело десятое. Тот факт, что "байт" и "8-ми разрядное слово" одинаковы, ничего не меняет. Даже в 8-ми битных контроллерах используются 16-ти разрядные слова. Не, я спрашивал могут ли в тексте исходника оказатся десятичные числа? Да запросто. И не только "могут", но и оказываются. Компилятору вообще пофиг, какой именно системой счисления ты пользуешься. С его точки зрения "15" и "0xF" это одно и то же число. Как удобнее тебе, так и пиши. Но вообще резковато ты к Sony_Sony. ![]() Вот имхо лучший калькулятор ( см. вложение ). ![]() К сообщению приложены файлы: 1.png |
| 224. K_AV, 16.03.2007 16:30 |
| КРОКОДИЛ Обычно в тексте программы численные значения ты можешь писать в любой из форм (двоичной, восьмеричной, шестнадцатиричной, десятичной). Для того, чтобы компилятор не ошибся - эти формы различаются синтаксисом написания (его-то тебе Бэтмэн и привел). Некоторые компиляторы накладывают ограничения (например, "восьмеричная форма записи не применяется") - надо смотреть описание конкретного компилятора. |
| 225. Sony_Sony, 16.03.2007 23:19 |
| КРОКОДИЛ я спрашивал могут ли в тексте исходника оказатся десятичные числа? в смысле до точки с запятой? в коментариях понятно любые могут быть числа, а вот в самой программе? по линку выше, прямо над "таблицей различного представления чисел" написано: Числа В компиляторе можно записывать в виде указанном в его Help'е ! Раздел - константы - Constants. например - Целые числа могут быть записаны : и примеры записи различных чисел. КРОКОДИЛ учебник не дает на это однозначного ответа поэтому я и рекомендовал cvavr.nm.ru/05.htm - дело в том что однозначно может ответить только хелп компилятора или ассемблера и примеры к нему - ведь у того кто его делал могут быть свои взгляды на то что можно и нельзя. Добавление от 16.03.2007 23:21: K_AV |
| 227. Sony_Sony, 17.03.2007 04:18 |
| Вот так: movwf Divisor_low ; 145,000/0,0125 = 11600 = 0x2D50 Возможно да. Но могут быть нарушения в работе в виде выхода за расчетный диапазон таймеров МК например. Индикатор тоже не извстно что будет показывать. Отлаживать надо. А автор не отвечает вАААбче ? Он мог бы прикинуть что будет. |
| 229. Sony_Sony, 17.03.2007 04:20 |
| КРОКОДИЛ Ну не могу я это читать -у меня сразу раздвоение личности начинается а иногда и развосьмирение! Я просто таблицу посмотреть предлагал - там все используемые представления байта нарисованы. А читать то не зачем - вы ж с ПИК-ом занимаетесь. Добавление от 17.03.2007 04:22: КРОКОДИЛ |
| 231. Sony_Sony, 17.03.2007 04:30 |
| Вы все же качните книги Майка предко - там АСМ для ПИК на русском. С вашим упорством 33 инструкции ПИКа вы в миг освоите. Книги там - http://www.roboforum.ru/viewforum.htm?f=19 И делайте как Сталин с Лениным - пометки на полях вашего РАСПЕЧАТОНОГО исходника. Что значит и откуда ккуда идет. Добавление от 17.03.2007 04:31: КРОКОДИЛ |
| 233. Tahoe, 17.03.2007 08:04 |
| КРОКОДИЛ для меня сейчас самое главное научится переписывать исходники Научиться разбираться в чужих исходниках, это [условно] "высший пилотаж". Свои писАть гораздо проще. Хоть понимаешь, что делаешь. Насчёт Асм vs Си, тут даже думать нефиг. Си, конечно. Насчёт ПИК vs AVR, особенно с учётом писАния на Си, однозначно AVR. Если есть предубеждение против Атмела, можно ещё и MSP430 глянуть. Хотя по мне, так про его "батарейность/маложрущесть" больше по инерции кричат. Особенно в свете выхода последних АВРов, с индексом "Р". ![]() И ещё. Хоть у Атмела и похожи цифирки, AT89, АТ90, АТ91, но сами камни отличаются принципиально. Это абсолютно разные семейства. Копаться с допотопными АТ89 смысла имхо вообще никакого нет. Это мало чем будет отличаться от копания с PIC-ом. ![]() |
| 234. K_AV, 17.03.2007 09:49 |
| КРОКОДИЛ "Тоесть это будет выглядеть вот так: movlw 0x2D ;коэффициент деления частоты при передаче movwf Divisor_low ;145,000/0,0125=11600=0x2D50 movlw 0x50 ; movwf Divisor_high ;" Не совсем. В значении 0x2D50 старший байт "2D", младший байт "50". Ты при внесении их в программу поменял их местами. Сравни с исходным текстом - что на что ты меняешь. Должно быть, видимо, так: movlw 0x50 ;коэффициент деления частоты при передаче movwf Divisor_low ;145,000/0,0125=11600=0x2D50 movlw 0x2D ; movwf Divisor_high ; |
| 236. K_AV, 17.03.2007 10:59 |
| КРОКОДИЛ Байты в многобайтном числе должны располагаться по порядку, младшие - правее. Менять местами нельзя , непонятно, почему ты это делаешь. Принципиально не важно, где и в каком порядке ты хранишь отдельные байты многобайтного числа. Перед использованием этого числа "в целом" ты обязан составить байты в правильном порядке (вне зависимости от того, в каком порядке они до этого где-то лежали). В "твоем" примере просто "говорящие" имена переменных. Divisor_Low - это явно младший байт делителя, Divisor_High - старший. Соответственно, и раскладывать туда нужно "свои" значения в соответствии с назначением: младший байт "50" - на предусмотренное для него место в Divisor_Low, старший "2D" - соответственно в Divisor_High. Посмотри в исходной программе (там так и сделано), и сравни со своей. Дополнение по более раннему вопросу: "Правда я не совсем понял к чему относится 0х28 Или здесь еще нужно будет чтото менять в последующем тексте программы?" В начале текста программы сделано определение "DF equ 2dh ;смещение (f-44,000 мГц)". Если ты это смещение менять не собираешься - то и значение менять не надо. |
| 237. Sony_Sony, 17.03.2007 11:17 |
| K_AV младшие - правее. Менять местами нельзя , непонятно, почему ты это делаешь. Дак вы ж написал ему порядок как "считаете нужным" а не так как есть - вот он и запутался. Вот вы писали: K_AV упорядоченно записываемых от младших к старшим Добавление от 17.03.2007 11:23: КРОКОДИЛ |
| 239. K_AV, 17.03.2007 13:49 |
| КРОКОДИЛ Проверь свой почтовый ящик (указанный в инфо). Причесал немного оформление исходного текста программы, добавил немного комментариев - думаю, тебе легче разбираться будет, где что искать. Извини, на большее времени нет, с работой завал. Закинь мне в почту схему, будет время - еще посмотрю поподробнее. Да, судя по этому "Byt3 equ 0xA0 ;Управляющий байт LM7001 (FM, шаг 25 кГц)", в синтезатор засылается константа, определяющая в том числе и шаг частоты. Не меняя ее, ты можешь себе в своей схеме изменять что угодно, но реально шаг частоты е поменяется, ты просто отображать будешь не то, что на самом деле. |
| 240. Sony_Sony, 17.03.2007 15:23 |
| КРОКОДИЛ А как АТ90С1200 -этот вроде не сильно древний? супер и экстра древнийший. Минимум это ATmega8 а лучше ATmega16 - их и PROTEUS и VMLAB поддерживают - проще отлаживать будет. Добавление от 17.03.2007 15:37: КРОКОДИЛ |
| 242. Tahoe, 17.03.2007 17:23 |
| КРОКОДИЛ А как АТ90С1200 -этот вроде не сильно древний? Как собсно камень - древний. Но принадлежит он к семейству "из посвежее", т.е. он всё же AVR. А ядро какое было, такое осталось. Другое дело, что в камнях посвежее и памяти побольше, и периферия поинтереснее, да и возможности лучше. Согласись, лучше взять камень, работающий в диапазоне питания 1,8 - 5 Вольт, чем просто 5-ти вольтовый. Имеющий встроеный генератор и потому запускающийся вообще без обвеса, чем камень, которому непременно нужен кварц. Ну и т.п. Но для первых опытов вполне сгодится и 90S1200, поскольку всё равно остаёшься в рамках одного семейства ( AVR ). Единственное, что скорее всего цена будет на него заоблачная, именно потому что старый. Посмотри для начала на ATtiny2313. Это современный "родственник" 90S1200. Ну либо как Sony_Sony рекомендовал, Мега8/Мега16. |
| 244. Dikoy, 17.03.2007 18:05 |
| КРОКОДИЛ Правда хороший сайт с точки зрения что ссылок много -типа что и где можно стащить Ещё бы навигацию ему... Tahoe Копаться с допотопными АТ89 смысла имхо вообще никакого нет. Да ещё и с параллельной загрузкой ![]() А как АТ90С1200 -этот вроде не сильно древний? Двевний и глюкной ![]() в учебнике пишут что нужно избегать чисел больше 255 во избежание переполнения регистра, -или я опять полез не в тему? Рависит от разрядности регистра. Она равна числу бит, которые в него влезают. Не влезшие старшие отсекаются. По этому, например, если ты совершаешь оперецию умножения с двумя 8 битными регистрами, то результат желательно копировать в 16 битный рег, т.к. он может стать больше, чем 8 бит. Например, 125*202=25250=0х62A2 то бишь 2 байта ![]() В Си, когда ты определяешь тип переменной, например, как int (2 байта) то под переменную резервируется это поле и далее ты можешь не волноваться. Хотя в хорошем Си, если честно, тип вообще пофиг - компилятор сам растягивает прменную, если фиксит в программе вероятность превышения указанного лимита. |
| 245. Tahoe, 17.03.2007 18:56 |
| КРОКОДИЛ вот только где бы еще раработки на них найти Да всё предельно просто. Сначала покупаешь AVR в DIP-корпусе, что бы удобнее макетировать было. Подаёшь на него питание ( удобно от USB взять, 5 Вольт ), вешаешь на ноги питания конденсатор 0,1 мкФ. Собираешь супер-сложный программатор, состоящий из 5-ти проводков на LPT . Вот и всё. Вешаешь светодиод и пару дней играешься с ним. После этого начнёшь задавать вопросы, типа "а как прицепить LCD", "как обслужить кнопки" и "как управлять синтезатором". Собсно вот и вся твоя задача. После этого сможешь взять вообще любой синтезатор, какой захочешь. Да и LCD тоже.Имхо через месяц ты спокойно напишешь свой синтезатор. А месяц пролетит быстро, ты и ахнуть не успеешь. Кстати, покопайся тут: http://www.telesys.ru/electronics/projects.php?do=all для обретения уверенности. ![]() Вот, например, для тренировки собери: http://www.telesys.ru/electronics/projects.php?do=p060 Можешь выкинуть кварц, если камень возьмёшь современный, а транзисторы заменить на биполярники. А научиться выплёвывать данные в COM-порт компа имхо будет полезно. Добавление от 17.03.2007 18:59: Кстати, по обозначениям. Хотя семейство и называлось раньше AT90, сейчас таких названий нет. Есть ATtiny ( эти попроще ) и ATmega ( эти понавороченнее ). Т.е. если увидишь в названии АТ90, это значит что камень, в лучщем случае, 2-3 летней давности. Ну за некоторыми исключениемя, которые тебя сейчас не интересуют. Короче, на АТ90 не смотри. Ищи ATmega или ATtiny. |
| 246. Sony_Sony, 17.03.2007 19:31 |
| Tahoe Сначала покупаешь AVR в DIP-корпусе, что бы удобнее макетировать было. Подаёшь на него питание ( удобно от USB взять, 5 Вольт ), вешаешь на ноги питания конденсатор 0,1 мкФ. Вот схема - cvavr.nm.ru/z7.htm - микросхему памяти подключать не обязательно ![]() Tahoe Собираешь супер-сложный программатор, состоящий из 5-ти проводков на LPT Вот схема и описание - cvavr.nm.ru/07.htm Tahoe После этого начнёшь задавать вопросы, типа "а как прицепить LCD", "как обслужить кнопки" Ответы на них в упражнениях на - cvavr.nm.ru/06.htm и в примерах к компилятору. Добавление от 17.03.2007 19:37: Tahoe |
| 247. Tahoe, 17.03.2007 20:31 |
| Sony_Sony НЕ СОВЕТУЮ ! без кварца пытаться делать связь с ПК ! нагимороетесь всласть... Вообще никаких проблем. Допустимая погрешность UART довольно большая, а встроеный RC-генератор довольно стабильный. Там только одна потенциальная проблема, начальная калибровка генератора. |
| 248. Sony_Sony, 17.03.2007 20:38 |
| Tahoe Там только одна потенциальная проблема, начальная калибровка генератора. Я уверен что новичку легче кварц поставить чем решить эту "одну проблему". |
| 249. An_private, 17.03.2007 20:42 |
| Tahoe Вообще никаких проблем. Допустимая погрешность UART довольно большая, а встроеный RC-генератор довольно стабильный +1 Никаких проблем Там только одна потенциальная проблема, начальная калибровка генератора. Обычно она изначально сделана достаточно качественно, так что и не требуется. |
| 250. Sony_Sony, 17.03.2007 21:01 |
| An_private Обычно она изначально сделана достаточно качественно, так что и не требуется. Это вы сами придумали ? |
| 251. Tahoe, 17.03.2007 22:07 |
| Sony_Sony Я уверен что новичку легче кварц поставить чем решить эту "одну проблему". Согласен. Однако это же справедливо и для кварца. Его надо купить ( что б был при этом нормальный и исправный, про перепутать с керамикой я не говорю, керамика ещё лучше заведётся, но можно ошибиться с частотой ), обвесить ёмкостями, что б он завёлся. Ещё надо не лохануться с фьюзами ( думаю ты и сам знаешь, что это один из "любимых" вопросов новичков ). Так что потенциальных проблем с кварцем имхо не меньше, как минимум. А то и больше. ![]() И ещё такой момент. Как показываетм практика, больше половины, а то и три четверти задач не требуют кварца. Ну и бонус за это - меньше стоимость, экономится место на плате. Добавление от 17.03.2007 22:11: КРОКОДИЛ |
| 252. Sony_Sony, 17.03.2007 22:19 |
| Tahoe Согласен. Однако это же справедливо и для кварца. Его надо купить ( что б был при этом нормальный и исправный, про перепутать с керамикой я не говорю, керамика ещё лучше заведётся, но можно ошибиться с частотой ), обвесить ёмкостями, что б он завёлся. Ещё надо не лохануться с фьюзами ( думаю ты и сам знаешь, что это один из "любимых" вопросов новичков ). Так что потенциальных проблем с кварцем имхо не меньше, как минимум. А то и больше. Tahoe, давай по примеру ВВП отделим мух от котлет ! Я говорил про ПРЕЛЕСТЬ кварца ИСКЛЮЧИТЕЛЬНО при свзяи с ПК - как самый простой способ обеспечить правильную скорость передачи !!! Естетсвенно если нет необходимости синхронизации со сторонним устройством то можно иногда и без кварца обойтись. Чтоб светодиодом помигать наверняка не нужен. Добавление от 17.03.2007 22:21: Tahoe |
| 253. An_private, 17.03.2007 23:16 |
| Sony_Sony Это вы сами придумали ? Хамло. Неплохо бы не только научиться раскрашивать странички в разные цвета, но и читать даташиты по английски. Он не зря называется Internal Calibrated Oscillator. По опыту работы с тини2313 десяток чипов прекрасно работал с RS232 от внутреннего RC генератора без перекалибровки. |
| 254. Tahoe, 17.03.2007 23:35 |
| Sony_Sony Tahoe, давай по примеру ВВП отделим мух от котлет ! Давай отделим. Твоя ошибка в том, что считаешь конечной целью обеспечить правильную скорость передачи (с). А я беру за конечную цель сделать работоспособное устройство, которое, каким бы простейшим оно ни было, заработает. Имхо гораздо лучше, когда устройство запустилось но не работает какой-то кусок ( в нашем случае всё сведётся к поправке OSCCAL ), чем когда устройство вообще не запускается и надо шаманить с паялом, гадать кварц это виноват, или фьюзы, или кривые настройки линкера. ![]() В общем, как всегда, если где-то прибавилось, значит где-то убавилось. Кварц хоть и гарантирует стабильность частоты, но за это надо заплатить. Это для профи. Любителям это ИМХО совсем не важно. Важно, только по другим причинам. Ну например, типа, "в нашей глуши кварц на такую частоту не найти"... Кстати, это довольно серьёзный довод. А научившись работать от встроеного RC, потом можно научиться его стабилизировать, например по часовому кварцу, которых на каждом углу как грязи. При этом частоту ты имеешь любую, какую захочешь. Да и вообще, имхо лучше сразу привыкать к хорошему. ![]() |
| 255. Sony_Sony, 18.03.2007 00:25 |
| An_private Хамло. Но комент ! An_private Неплохо бы не только научиться раскрашивать странички в разные цвета, но и читать даташиты по английски. Он не зря называется Internal Calibrated Oscillator. Угу ! Калиброваный +- 3 % А еще у микрух по цене от 0 до 40 баксов обычно пишут "ло кост" На заборе тоже написано... однако это все же ПРОСТО забор. |
| 256. An_private, 18.03.2007 00:27 |
| Sony_Sony Калиброваный +- 3 % Для RS232 этого более чем достаточно. |
| 257. Sony_Sony, 18.03.2007 00:28 |
| Tahoe Да и вообще, имхо лучше сразу привыкать к хорошему. Однако в большинстве пром устройств МК стоят либо с кварцами либо с керамикой ... я конечно про те с которыми дело имел. ======== Можно посмотреть 100 проектов на телесистемах. Или схемы их серийных устройств. Или 300 с лишним проектов на "аврфрексе" и вы увидите что в 90% устройств будут кварцы или керамика - "ло кост" ![]() Добавление от 18.03.2007 00:35: An_private |
| 258. An_private, 18.03.2007 00:45 |
| Sony_Sony Угу... а CVAVR идиот конечно создавал Понятия не имею - кто его создавал. А вот даташит прочитать бы не помешало. Для 8-ми битного слова и режима нормальной скорости допустимое отклонение +4.58/- 4.54% |
| 259. Sony_Sony, 18.03.2007 00:53 |
| Вы ваааабЧе понимаете об чем речь ? Мы говорим о связи с ПК !!! В даташите на ПК вы знаете какая ошибка допустима ? Чтоб ПК мог НАДЕЖНО понять что ему МК гутарит. |
| 260. An_private, 18.03.2007 00:58 |
| Sony_Sony Вы ваааабЧе понимаете об чем речь ? Я? Да. А Вы? В даташите на ПК вы знаете какая ошибка допустима ? Чтоб ПК мог НАДЕЖНО понять что ему МК гутарит. Можно посмотреть. Не меньшая, чем у AVR - это точно. |
| 261. Sony_Sony, 18.03.2007 01:00 |
| An_private Не меньшая, чем у AVR - это точно. А почему ж AVR так плох - получается что у него меньше чем у ПК. |
| 262. Tahoe, 18.03.2007 01:08 |
| Sony_Sony Можно посмотреть 100 проектов на телесистемах. Или схемы их серийных устройств. Или 300 с лишним проектов на "аврфрексе" и вы увидите что в 90% устройств будут кварцы или керамика - "ло кост" Угу. Именно так и будет. А теперь прими во внимание, что большинство этих проектов либо столетней давности, когда со встроеным RC-генератором контроллеров было раз-два (-три ) и обчёлся, разве что в MSP он с незапамятных времён. Либо проекты эти сделаны людьми, не то что бы начинающими... Нет, конечно. Но многие либо не знают толком про его возможности, либо по принципу "сделано - не трожь". Т.е. как ставили кварцы/керамику, так и ставят везде. Не заморачиваясь "лишними" фичами. Это из той же оперы, что и вешание внешнего BOD, при наличии встроеного в камень. Так что все эти проекты - не показатель. ![]() А касательно погрешности UART, так её несложно самоу прикинуть. На самом деле погрешность эта зависит от того, во сколько раз приёмник делает оверсэмрлинг ( т.е. сколько набежит на бит ) и кол-ва бит в кадре. Обычно оверсэмплинг в 16 раз, длина кадра: старт + 8 данных + стоп. Итого 10, ну пусть даже 12 бит. Вот и прикидывай, на сколько реально допустим разбег частот, откуда вообще ноги растут у этих %%. ![]() Добавление от 18.03.2007 01:14: Стоп, лоханулся я. От кол-ва бит это вообще не зависит. Только от оверсэмплинга. Тогда допустИм уход частоты до половины 1/16. Т.е. в раойне половины 6,25% всё вертится. Добавление от 18.03.2007 01:18: А для оверсэмплинга в 8 раз всё ещё "слаще". 1/8 это 12,5%. Делим на 2 получаем 6,25%. Хотя надо ещё учитывать особенности реализации самого UART, так что Атмеловцы ещё чуток уменьшили этот предел. Что понятно, они же должны _гарантировать_ работу и плюс, знают логику работы своего UART. Добавление от 18.03.2007 01:18: Кстати, а с комповыми тоже всё понятно. Качаем даташит на легендарную 16550... |
| 263. An_private, 18.03.2007 01:20 |
| цитата из аппнота от philips There is no exact limit on how much frequency error is tolerable, since this depends on the devices communicating, the baud rates, precise frequencies used by both devices, etc. However, a rule of thumb may be used that the communication is likely to work if the frequency is off by less than 5%. This somewhat arbitrary number was arrived at as follows: for a ten-bit serial code (one start, 8 data bits, one stop), a 10% data rate error will put the receiver off by about plus or minus one bit time at the end of one data frame. A one bit-time error seems rather excessive if one wants fairly reliable communications. So, consider using half of that value (5%) as a rule of thumb. Достаточно? Или еще будем выдумывать? |
| 265. An_private, 18.03.2007 01:59 |
| КРОКОДИЛ А где можно взять толковый учебник по СИ В качестве справочника использую это - http://www.citforum.ru/programming/c/dir.shtml |
| 267. Tahoe, 18.03.2007 02:02 |
| КРОКОДИЛ А где можно взять толковый учебник по СИ Я учился по "Керниган и Ричи" ( Kernighan & Ritchi ). Это классика, от создателей Си. В обиходе её называют K&R. http://www.google.com/search?client=opera&rls=en…tf-8&oe=utf-8 |
| 268. Sappa, 18.03.2007 02:07 |
цитата: У разных контроллеров, согласно даташитам, по разному. ATtiny12: At 5V and 25°C, the pre-programmed calibration byte gives a frequency within ± 1% of the nominal frequency. ATtiny2313: At 3V and 25°C, this calibration gives a frequency within ± 10% of the nominal frequency. Using calibration methods as described in application notes available at www.atmel.com/avr it is possible to achieve ± 2% accuracy at any given VCC and Temperature. |
| 269. Sony_Sony, 18.03.2007 02:10 |
| An_private This somewhat arbitrary number was arrived at as follows: for a ten-bit serial code (one start, 8 data bits, one stop), a 10% data rate error will put the receiver off by about plus or minus one bit time at the end of one data frame. A one bit-time error seems rather excessive if one wants fairly reliable communications. So, consider using half of that value (5%) as a rule of thumb. Достаточно? Или еще будем выдумывать? Блиннн ... Если бы вы хоть чуть чуть верхнюю головку напрягли ... Да где там ! Расчет по аглицки сделан из расчета ОДНОГО семпла на бит !!! А AVR делает 3 сэмпла на бит ! Соответственно 5 разделите на 3 и получите 1.7% ======== С.М. Рюмик - написавший известные курсы по микроконтроллерам конечно же тоже ИДИОТ ??? Ведь какую галиматью написал: http://forum.radiospec.ru/index.php?s=8d1e5b114e3c05…ic=5544&st=20 "Приемлемой для практики считается погрешность менее 0, 5%. В диалазоне отклонений 0, 5... 3% еще имеется захват частоты, но уменьшается помехоустойчивость." ====== Ну а вы, An_private, конечно же ПРАВЫ ! Добавление от 18.03.2007 02:12: An_private |
| 270. Tahoe, 18.03.2007 02:12 |
| КРОКОДИЛ поэтому нужно абсолютно точно знать какой нужен контроллер http://www.efind.ru/icsearch/?search=ATmega8L-8P Это слегка устаревший, но один из самых популярных. Символ "Р" на конце означает DIP-корпус. Символ "L", что может работать от 3.3 В. Посмотри ещё ATMEGA48V-10P. "V" означает, что может работать от 1,8 Вольт. Верхняя граница у всех AVR-ов до 5 Вольт. |
| 272. Tahoe, 18.03.2007 02:17 |
| Sony_Sony А AVR делает 3 сэмпла на бит ! Поделись, откуда инфа такая? ![]() |
| 273. Sony_Sony, 18.03.2007 02:18 |
| КРОКОДИЛ поэтому нужно абсолютно точно знать какой нужен контроллер ATmega16 и кварцы 7, 3728 11,0592 14,7456 МГц с конденсаторами 22 пФ Вам нужно сделать схему и заказать компоненты, а в ожидании делать прогу и отлаживать пока на VMLAB или PROTEUS |
| 274. Tahoe, 18.03.2007 02:23 |
| А, ты про это: Добавление от 18.03.2007 02:25: Дык в пределах чуть меньше пол-бита можно спокойно иметь разбег. К сообщению приложены файлы: 1.png |
| 276. Sony_Sony, 18.03.2007 02:33 |
| Tahoe Sony_Sony А AVR делает 3 сэмпла на бит ! Поделись, откуда инфа такая? Дак по старинке ... из даташита родимого. Я то его действительно ЧИТАЛ ! The decision of the logic level of the received bit is taken by doing a majority voting of the logic value to the three samples in the center of the received bit. The center samples are emphasized on the figure by having the sample number inside boxes. The majority voting process is done as follows: If two or all three samples have high levels, the received bit is registered to be a logic 1. If two or all three samples have low levels, the received bit is registered to be a logic 0. This majority voting process acts as a low pass filter for the incoming signal on the RxD pin. Добавление от 18.03.2007 02:35: КРОКОДИЛ |
| 277. An_private, 18.03.2007 02:35 |
| Sony_Sony Блиннн ... Повторюсь. Хамло. А AVR делает 3 сэмпла на бит ! Соответственно 5 разделите на 3 и получите 1.7% Вообще-то AVR делает 16 семплов на бит. На той же странице есть формула расчета допустимого отклонения. Ни о каких 1.7 % речь не идет. здесь был неправильный подсчет - слишком хорошо подумал об AVR ![]() В диалазоне отклонений 0, 5... 3% еще имеется захват частоты, но уменьшается помехоустойчивость Разумеется. Чем больше отклонение, тем ниже помехоустойчивость. Но в бытовых условиях на коротких линиях это не имеет ровно никакого значения - ошибок и так 0. Ну а вы, An_private, конечно же ПРАВЫ ну наконец-то ![]() а вы даете ему то что на странице - cvavr.nm.ru/05a.htm - находится понятия не имею - что на этой свалке находится Все, мне надоело. Заниматься ликбезом, тем более таких одиозных личностей нарываясь на хамства - на фиг. В игнор. |
| 279. Sony_Sony, 18.03.2007 02:41 |
| Tahoe Дык в пределах чуть меньше пол-бита можно спокойно иметь разбег. Ты действительно считаешь что новичку можно советовать работать (сэмплить) на фронтах и спадах импульсов (если предположить что сэмпл 1 и разбежка пол-бита) ??? Ты считаешь что это надежная связь будет ??? Мдя... добрые советы. Похоже CVAVR и правда идиоты делают. Кстати в ICC мастре тоже так считает - наверно и там идиоты окопались. Во засада ![]() An_private Все, мне надоело. Заниматься ликбезом Помогать новичкам дело не простое - хлопотное и не благодарное. Редко кто спасибо скажет. |
| 281. Tahoe, 18.03.2007 03:51 |
| КРОКОДИЛ А можно немного подробней на тему синхронизации с часовым кварцем? О, тебе это будет "близко" и "знакомо". Всё то же самое, что и у тебя в трансиверах, та же PLL по сути.Имеешь стабильную низкую частоту ( 32768 Гц ). Имеешь нестабильную высокую частоту ( около 8 Мгц ). Имеешь регистр OSCCAL, с помощью которого можно подстраивать эту "нестабильную" частоту. Остаётся только "поделить" и "сравнить". А результат "сравнения", это в твоих терминах ни что иное, как "выход фазового детектора". С помощью коего ты и будешь подстраивать "нестабильную" частоту. Собсно ничем не отличается от твоих синтезаторов, просто реализация не напряжениями, а числами. Остальное всё абсолютно то же - шаг перестройки, джиттер... ![]() Sony_Sony Ты считаешь что это надежная связь будет ??? Ну а как ещё мне считать, если работает уже не один год. И не только у меня. Похоже CVAVR и правда идиоты делают. Кстати в ICC мастре тоже так считает - наверно и там идиоты окопались. На самом деле, это издержки симуляторов. Наряду с глюками и проч. То, что в железе работает, в симуляторе видимо берут с запасом. Давай посчитаем. Допустим оверсэмплинг х16, фрейм 10 бит. На сколько тиков может убежать частота на последнем бите? Согласно вышеприложенному рисунку на -6/+7. Сколько всего тиков? 16 * 10 бит = 160 тиков. 6 / 160 * 100 = 3,75% 7 / 160 * 100 = 4,375% Это без учёта того, как поведёт себя сэмплер, если попадёт на 110 вместо 111. Но по-уму он должен работать мажоритарно, так что наш +/- плавно превращается в -7/+8. Итого: 7 / 160 * 100 = 4,375% 8 / 160 * 100 = 5% У An_private что-то близкое было... Кстати, на предыдущей странице я кое-где фигню написал, кажись. Так всегда бывает, когда в голове 2-3 задачи вертятся. |
| 282. Dikoy, 18.03.2007 03:54 |
| КРОКОДИЛ А где можно взять толковый учебник по СИ если на время забыть об cvavr.nm.ru? Купи в магазине простой учебник по Си для средней школы Только по обычному Си, а не по билдерам всяким. Обычно это брошюрка страниц на 50. |
| 283. Tahoe, 18.03.2007 03:55 |
| Sony_Sony Да, ещё, с RC-генератором тоже не всё так просто. Атмел ради стабильности в некоторые камни их несколько штук пихал, по одному на каждый диапазон. А насчёт калиброванности, в смысле абсолютной, так вроде где-то пробегало, что раньше их на 5Вольт калибровали, сейчас на 3,3 Вольта. |
| 285. Tahoe, 18.03.2007 04:05 |
| Sony_Sony О, насчёт мажоритарности я прав оказался. В твоей же ссылке выше, на даташит, прям так и написано. |
| 287. Tahoe, 18.03.2007 04:17 |
| КРОКОДИЛ А какие микросхеммы синтезаторов лучше применить -в смысле из современных? Я в ВЧ полный ноль. Последний раз, лет 6-8 назад программили какие-то Моторолы и NEC-и. Но это давно было, к тому же NEC имхо хрен где купишь. Хотя Моторолы наверное ещё продаются. Погляди тут, какой у них ассортимент нонче, эти люди в ВЧ знают толк: www.elcotech.ru По мне, так все эти синтезаторы одинаковые: SPI-образная шина, 1-2 регистра, бит по 10-20. Самое муторное имхо делители посчитать аккуратно, да всякие swallow counters.А вообще нонче вроде всё DDS-ом норовят сделать. Простой синтезатор уже "не модно". ![]() Добавление от 18.03.2007 04:22: КРОКОДИЛ |
| 289. An_private, 18.03.2007 10:05 |
| Tahoe так вроде где-то пробегало, что раньше их на 5Вольт калибровали, сейчас на 3,3 Вольта В даташитах Но учитывая, что у tiny2313 при изменении напряжения от 1,8 до 5,5 В частота RC меняется меньше, чем на 0.5%, можно на это не обращать внимания. |
| 290. Dikoy, 19.03.2007 04:02 |
| КРОКОДИЛ Соглашусь с двойной соней - если не хочешь проблем, ставь кварц. Внутренний RC тоже неплох, особенно если температура и питание практически не меняются, но с ним таки надо помучаться и почитать ДШ... Нефиг сразу это делать, потом сам разберёшься, если серийник будешь делать или с ограничением по массе прибор. А пока поставь кварцик и два кондёра по 22 пика. И будет тебе ЩАСТЬЕ. Все у нас уже не купишь! Если для прототипа, можно самплом заказать. Мотор охотно шлёт. |
| 291. КРОКОДИЛ, 19.03.2007 04:24 |
| Dikoy если не хочешь проблем, ставь кварц В синтезаторе в любом случае кварц стоять будет, а для мигалки не столь важно ![]() Добавление от 19.03.2007 04:28: Dikoy |
| 292. Dikoy, 19.03.2007 08:04 |
| КРОКОДИЛ В синтезаторе в любом случае кварц стоять будет, а для мигалки не столь важно Вопрос в работе интерфаков, то бишь интерфейсов. Их частоты должны быть завязаны ![]() Если ты связываешь два МК, можно тактировать их от одной частоты и тогда пофиг вся её нестабильность. А вот для связи с ПК лучше поставить кварц, чтобы голова уж точно не болела. Да если б еще знать что заказывать -отстал я немножко от современных деталей Це не ко мне... Я в синтезаторах вообще не шарю... Попробуй поискать форумы радиосвязи и спросить там, наверняка подскажут. На том же сайте журнала радио есть такой форум Если подберёшь, заказать не проблема - насколько знаю, фрискейл в украину самплы шлёт. |
| 293. Sony_Sony, 19.03.2007 09:14 |
| Dikoy знаю, фрискейл в украину самплы шлёт. И очень активно ! Добавление от 19.03.2007 09:35: ============= |
| 294. КРОКОДИЛ, 19.03.2007 15:19 |
| Dikoy На том же сайте журнала радио есть такой форум Так у них же АТ89 -САМАЯ суперсовременная микра! ![]() |
| 295. Sony_Sony, 19.03.2007 15:52 |
цитата: Они бывают и суперсовременными - kurs8051.narod.ru но к АТ892051 -4051 -51 это не относится - эти настоящие мамонты. |
| 296. Tahoe, 19.03.2007 21:12 |
| Dikoy особенно если температура и питание практически не меняются А вот скажи, например, у тебя много где "питание меняется" в девайсах с МК? ![]() Ну а касательно температуры, с трудом себе представляю начинающего, который макетирует свой МК, сидя перед компом и испытывая перепады температуры от -20 до +80. ![]() КРОКОДИЛ Так у них же АТ89 -САМАЯ суперсовременная микра! Дык тебя туда отправили не про МК, а про синтезаторы поспрашать. А уж чем там они этим синтезаторам ножки дёргают, дело десятое. Чем научились 10 лет назад, тем и дёргают.А у тебя задача - названия синтезаторов из них "вытрясти". ![]() |
| 297. КРОКОДИЛ, 20.03.2007 02:49 |
| Tahoe А у тебя задача - названия синтезаторов из них "вытрясти". На Радио вообще ничего не нашел-шибко убогий у них форум Просмотрел несколько форумов, вроде LMX2326 не шибко старая, но в Донецке их нет, в Запорожье тоже -придется опять в Киеве заказывать |
| 298. Dikoy, 20.03.2007 03:29 |
| КРОКОДИЛ LMX2326 Кто её сделал? Закажи семпл! Не шлют в украину - через любую соседнюю страну, куда шлют. В ветке про семплы всё разжёвано. Сам бы сейчас на фрискейл залез, но с их тяжеленным сайтом мой мобильник просто умрёт ![]() |
| 299. КРОКОДИЛ, 20.03.2007 03:38 |
| Sony_Sony Пример: Часовой кварц на ATmega8 и внутренний RC генератор Часы меня не интересуют абсолутно! Можешь действительно конкретно помочь? Нужно написать шаблон исходника для синтезатора на Си. Так чтобы туда можно было вписывать дискретные частоты, ну и естественно с подробными пояснениями. Вобщем камень -какая нибудь простенькая и недорогая AVRка, синтезатор - LMX2326, переключатель на 8 фиксированных положений -можно меньше, дисплей и клавиатура полностью отсутствуют, разнос между приемом и передачей 10,7Мгц если можно прицепить еще переключение на 21,4Мгц -то это будет вообще прекрасно, должна быть возможность вписывать частоты кратные 12,5Кгц. Алгоритм работы простенький - камень опрашивает переключатель и выдает команду LMXу выдать одну из 8 прописаных в исходнике частот, при нажатии кнопки "передача" частота увеличивается на 10,7Мгц. Диапазон вписываемых частот от 144 до 172Мгц. Добавление от 20.03.2007 03:49: Dikoy |
| 300. Sony_Sony, 20.03.2007 07:02 |
| КРОКОДИЛ синтезатор - LMX2326 Ты определись какой синтезатор будет. "Нэйшенел семи" вряд ли что-то бесплатно пришлет. ====== Вот этот синтезатор подойдет наверно http://focus.ti.com/docs/prod/folders/print/trf3750.html от 100 до 2400 МГц заказ бесплатно "Request Free Samples" Даташит - http://focus.ti.com/lit/ds/symlink/trf3750.pdf У них и микроконтроллеры бесплатные msp430 и источники питания и море компонентов (о заказе в соседней ветке) ====== Короче определись какие компоненты у тебя будут. Мегу16 купишь ? Добавление от 20.03.2007 07:28: КРОКОДИЛ |
| 301. Dikoy, 20.03.2007 10:05 |
| КРОКОДИЛ Что такое семпл? Это когда ты от лица конторы (любой) заказываешь микру и она тебе приходит по почте абсолютно бесплатно И быстро. У фрискейла, он же моторолла, в россию - 2 недели. Ti присылает за 5-7 дней с момента заказа.Вроде как Семикондутор Семикондуктор по англицки - полупроводник ![]() Напиши ТЗ по-конкретней, с напряжениями питания и т.д. Попробую помочь. Добавление от 20.03.2007 10:18: КРОКОДИЛ Добавление от 20.03.2007 10:31: КРОКОДИЛ |
| 302. Sappa, 20.03.2007 12:25 |
| А я бы не стад брать PLL синетезатор для этой цели. Ведь что есть PLL синтезатор? Это делитель с переменным коэффициентом, кварцованный опорник и фазовый детектор. Вся эта конструкция управляет ГУНом который надо будет еще сконструировать и обеспечить чистый сигнал с него... По моему DDS гораздо удобнее. Ежели очень критично по шумам и паразиткам, то серия AD995* если менее критично, то AD985* от Analog Devices. |
| 303. Sony_Sony, 20.03.2007 12:44 |
| Dikoy Мне лично 48 больше всего нравится Дешевле не придумаешь и всё есть. Полное название для дипового корпуса: ATmega48 24PI И симуляторами PROTEUS и VMLAB не поддерживается... Зато дешево! И "секса" вдоволь поимеешь - когда опыта нет так класно в железе отлаживать аш жуть ! ![]() |
| 304. An_private, 20.03.2007 12:52 |
| Sony_Sony когда опыта нет так класно в железе отлаживать Хм. Ни разу в жизни не пользовался симулятором. С самого начала только в железе. И ничего - работает как-то ![]() |
| 305. Sony_Sony, 20.03.2007 14:35 |
| Дак большинство людей на земле сотовым телефоном не пользуются и ни чего живут... Это не смертельно вовсе, просто сотовый телефон это удобно. Тоже и симуляторы - в них нет необходимости - они просто удобны тем что не позволяют спалить то что КРОКОДИЛу так трудно достать. Добавление от 20.03.2007 14:36: An_private |
| 306. Tahoe, 20.03.2007 14:41 |
| An_private Хм. Ни разу в жизни не пользовался симулятором. +1. Применительно к AVR, разумеется. Хотя я вот сейчас и для ARM-а не особо симулирую. Периферия, всё, что аппаратно-зависимое - только живьём. А для остального есть BCB55, оно же Борландовский компиллер. А уж про специализированные вещи я вообще молчу. Один знакомый вообще "жил" в Матлабе.КРОКОДИЛ Кстати, ты бы скачал пока IAR-овский компиллер, что ли. Тебе нужен тот, который EWAVR. Собсно это и есть "та программа", в которой пишешь исходник, а на выходе получаешь прошивку для камня. В народе именуемая "компилятор". Это не единственный компилер для AVR, но рекомендую его. Я в итоге сейчас пользуюсь им и для AVR, и для ARM, и для MSP430. Добавление от 20.03.2007 14:47: Sony_Sony |
| 307. An_private, 20.03.2007 14:58 |
| Sony_Sony Уверен что вы врете В третий раз - хамло. Tahoe А ты хоть раз хоть один вывод в Меге смог спалить? Я так и не смог +1 Единственный "убитый" камень - дал спаять макетку неопытному человеку и где-то был плохой контакт. Судя по всему при прошивке фьюзов прошла ошибка и запретилось программирование через SPI. Параллельный программатор делать было лень, так что до сих пор валяется... |
| 308. Sony_Sony, 20.03.2007 15:00 |
| А палить не нужно. Достаточно почитать стоны в форумах о кучках МК у новичков с отключеным режимом ISP. Я потому и советую мегу16 взять что там не так просто отключить RESET как в более мелких и дешовых AVR-ках. Добавление от 20.03.2007 15:06: An_private |
| 309. An_private, 20.03.2007 15:09 |
| Sony_Sony т.е. высказал моё отношение к вашему заявлению А я свое отношение к Вам ![]() |
| 310. Dikoy, 20.03.2007 15:33 |
| Tahoe А ты хоть раз хоть один вывод в Меге смог спалить? +2 ![]() Один раз студень перепутал полярность. Мега8 разогрелась как кипятильник но... Выжила и её ещё долго потом мучали ![]() Sony_Sony И симуляторами PROTEUS и VMLAB не поддерживается... Та я напишу ему ту прошивку Только пусть ТЗ даст и синтезатор подберёт.А симулятором и я не пользовался... Когда начинал - не знал что это такое, а сейчас и не нужен... ![]() Как-то у меня с самого начала с ворк-бенчем не сложилось и я на них всех забил... |
| 311. Sony_Sony, 20.03.2007 16:41 |
| КРОКОДИЛ ! делайте выводы. |
| 312. КРОКОДИЛ, 21.03.2007 03:00 |
| Dikoy но с их тяжеленным сайтом мой мобильник просто умрёт Я сейчас тоже по сотовому в нете лазию, подписка нА спутнике закончилась. ![]() Напиши ТЗ по-конкретней, с напряжениями питания и т.д. Попробую помочь. Да сейчас пробил микры по Киевской фирме, лучше поставить синтезатор LMX 2316 вместо LMX2326, - больше по бюджету подходит , ATmega48 24PI - у нас к сожалению не продают, -лучше какую нибудь ATtiny2313 -или что нибудь наподобие - малобюджетное - в дип корпусе всего 1$ стоит! Семпл это конечно хорошо когда для себя делаешь или эксперементируешь, а если девайс всетаки пойдет в серию, то о Семпле можно забыть -все придется покупать -а менять базовую кнструкцию только изза того что невозможно купить какую нибудь микру дело очень хлопотное. Напряжение питания в принципе не играет рояля так как трансиверы будут устанавливатся в автомобилях, -вобщем любое напряжение ниже 12вольт, эконмичность шибко большая тоже не требуется.То есть прописано 8 частот, но кнопой можно ещё увеличивать с шагом 10,7? Уменьшать надо? Ну частоты заранее не известны поэтому будут прописаватся для каждого трансивера индивидуально в районе от 144мгц до 172мгц, вобщем когда трансивер стоит на дежурном приеме то синтезатор должен выдавать частоту на 10,7 мегагерца выше или ниже той которая прописана, а когда нажимаешь кнопку передачи то частота должна изменится и четко соответствовать прописанной. Выше или ниже -промежуток не имеет значения -трансиверу пофиг! Но есть еще трансиверы с промежутком в 21,4 мегагерца поэтому нужно предусмотреть возможность менять промежуток, но если это сильно сложно то ненужно -пока рулит и так. А кратность 12,5 килогерц нужна потому что уже многие службы работают по новой сетке частот, пример -165,4625 -ПОЭТОМУ приходится переделывать трансиверы на которых такая кратность не предусмотренна. Раньше сетка частот шла с шагом 25Кгц. ![]() Перевод даташиты на ATmega128. Скачал, буду разбиратся ![]() Может отличаться структура регистров, Вот с ними родимыми у меня какраз полная непонятка -голова дырявая -то регистры выпадают то команды ![]() Добавление от 21.03.2007 04:40: Sappa Добавление от 21.03.2007 05:12: Sony_Sony |
| 313. Xradio, 21.03.2007 05:53 |
| КРОКОДИЛ Большинство PLL синтезаторов имеют последовательную загрузку данных. И нет ничего сложного сформировать такую последовательность с помощью любого микроконтроллера. Эта задача, можно сказать, из разряда простейших. Типа, как светодиодом помигать. Однако я знаю людей, которые имея колоссальнейший опыт в радиоэлектронике, и ноль в МК, хитрожутко прошивали ПЗУ и хитрым же адресным счетчиком выдавали из неё нужный сериал-код для синтезатора. А времени на создание такой, графической... прошивки ушло бы больше, чем для написания нормального контроллера со всеми присущими ему функциями. Но страх перед МК... ![]() В общем, начинай с изучения протокола загрузки выбранного LMX... лучше выпиши сразу нужные тебе числа всех коэфф., вернее их крайние значения. Затем выбери подходящий МК с учетом того, что для PLL понадобится максимум 4 порта (DATA, SCK, LE и контроль захвата - очень полезно) Остальные ноги МК надо посчитать для клавиатуры, дисплея... и т. д. С выводом из МК слов управления в последовательном виде тебе помогут, или я отправлю кусочки кода для AVR (но через 2 недели) Добавление от 21.03.2007 06:06: An_private |
| 314. Sony_Sony, 21.03.2007 10:00 |
| КРОКОДИЛ какую нибудь ATtiny2313 -или что нибудь наподобие - малобюджетное - в дип корпусе всего 1$ стоит! а если девайс всетаки пойдет в серию, В серию другое дело ... Я мегу16 конечно для любительства советовал. Добавление от 21.03.2007 10:02: КРОКОДИЛ |
| 315. Dikoy, 21.03.2007 11:17 |
| КРОКОДИЛ лучше какую нибудь ATtiny2313 -или что нибудь наподобие - малобюджетное - в дип корпусе всего 1$ стоит! Тинька пойдёт. Главное, чтобы был SPI порт для звязи с синтезатором, а он есть у всех АВР. а если девайс всетаки пойдет в серию, то о Семпле можно забыть А это зависит от того, кто серию быдет делать - если заказчик, то это его проблемы ![]() поэтому нужно предусмотреть возможность менять промежуток, но если это сильно сложно то ненужно -пока рулит и так. Тут два варианта. Либо вводить клавиатуру и диспелей, и возможность ввода вручную, либо делать интерфейс с компом. Подходы по сложности одинаковы, но дисплей и клава стОят денег, да и память тиньки сожрут ощутимо... По сему, если смена оперативно не нужна, проще сделать интерфак к компу. Так устроит? Вот с ними родимыми у меня какраз полная непонятка -голова дырявая -то регистры выпадают то команды С кодевижном это большого значения не имеет. Он сам разберётся, что там да и как. Другой вопрос, что те режимы, которые есть в 128 меге могут отсутствовать в тиньке не смотря на одинаковый порт или ШИМ ![]() Уже определился -LMX-2316. Посмотрю вечером ДШ, прикину. Xradio С выводом из МК слов управления в последовательном виде тебе помогут Для кодевижна: spi(0)=data; ![]() Sony_Sony А что у нас нынче есть типа МАХ232, только на 2 линии и дешёвое? А то давно я RS232 не трогал... Добавление от 21.03.2007 12:05: КРОКОДИЛ |
| 316. Sony_Sony, 21.03.2007 12:22 |
| Dikoy Главное, чтобы был SPI порт для звязи с синтезатором, а он есть у всех АВР. Нет. Не у всех. Добавление от 21.03.2007 12:38: Dikoy Добавление от 21.03.2007 12:41: Dikoy Добавление от 21.03.2007 12:47: Dikoy Добавление от 21.03.2007 12:54: Вот можно прикинуть: |
| 317. КРОКОДИЛ, 21.03.2007 17:02 |
| Xradio Но страх перед МК... Да не боюсь я его -просто для доходчивого изучения нужно все бросить, и заниматся только контроллерами а такой роскоши я себе позволить не могу. ![]() Добавление от 21.03.2007 17:09: Sony_Sony Добавление от 21.03.2007 17:11: Tahoe Добавление от 21.03.2007 17:18: Dikoy |
| 318. Sony_Sony, 21.03.2007 17:19 |
| КРОКОДИЛ А ссылочку можно -где скачать? iar.com Добавление от 21.03.2007 17:22: 93 Мб (при том что CVAVR 2,3 Mb всего со встроеным программатором) |
| 319. КРОКОДИЛ, 21.03.2007 17:27 |
| Dikoy Вот это видел? http://www.cqham.ru/S2006.htm Да, видел - не подходит -руская микросхема которая даже гугелем не выгугливается -тоесть найти ее я не смогу, а АТ-89 я даже прошить не смогу, и конструкция для сериии сложновата, а больше половины наворотов и нафиг не нужны, и опять же исходника они не дают Короче это у них латентный бизьнес ![]() Добавление от 21.03.2007 17:29: Sony_Sony Добавление от 21.03.2007 17:33: Xradio Добавление от 22.03.2007 01:26: Dikoy Добавление от 22.03.2007 03:41: Dikoy |
| 320. Dikoy, 22.03.2007 08:13 |
| КРОКОДИЛ Да еще одну фичу забыл - кварец желательно использовать на 10,245Мгц. Для МК в смысле?.. Sony_Sony Лечить советую - iarunicrk.exe (ищи в rambler.ru) - он для всех ИАР-ов. А вижон ему даже лечить не потребуется - в тиньке всего 2 кб ![]() |
| 321. Sony_Sony, 22.03.2007 10:10 |
| Нет. CVAVR надо качать полный. в Демке не все фичи мастера кода доступны. |
| 322. Dikoy, 22.03.2007 10:26 |
| Sony_Sony в Демке не все фичи мастера кода доступны. Например?.. |
| 323. Xradio, 22.03.2007 10:43 |
| Dikoy кварец желательно использовать на 10,245Мгц. Для МК в смысле?.. Эта частота применяется в приемнике для второго преобразования в 455 kHz. (10700 - 10245) Чтобы сэкономить резонаторы разумно взять её с MC3361(57) (однокристалльный приёмник) для внешнего тактирования микроконтроллера. Я так и делал, поскольку для экономии тока в сканере процессор полностью Sleepил в статическом режиме (когда все настроено и проиндицировано) кста, помех приему (поражёнок от МК) тоже радикально меньше. Добавление от 22.03.2007 10:48: КРОКОДИЛ |
| 324. Sony_Sony, 22.03.2007 13:47 |
| Dikoy Sony_Sony в Демке не все фичи мастера кода доступны. Например?.. Нельзя настроить USART с прерываниями. Нельзя настроить использование многих приборов DS Добавление от 22.03.2007 13:48: Xradio |
| 325. Dikoy, 22.03.2007 21:07 |
| Sony_Sony Нельзя настроить USART с прерываниями. Скорости выше 151200 там и не в демке не настроишь - ручками надо. То же и с прерываниями - можно и ручками, компилятор пропустит. Но ему, конкретно, оно не надо. |
| 326. Pyku_He_oTTyda, 22.03.2007 21:43 |
А как такой кусочек "красиво" написать?код: |
| 327. Qwertty, 22.03.2007 22:16 |
Тут бы не о красоте думать, а для начала ошибки исправить С существующим алгоритмом переменная key_press не работает. |
| 328. Pyku_He_oTTyda, 22.03.2007 22:21 |
| Qwertty да, я заметил, только поправить не успел Был один кусок, вставлял по копи-пасте и упустил...Счас поправлю |
| 329. Sony_Sony, 22.03.2007 22:50 |
| Dikoy Sony_Sony Нельзя настроить USART с прерываниями. Скорости выше 151200 там и не в демке не настроишь - ручками надо. Dikoy, я уважаю как строителя автопилота для БПЛА Но какого черта вы засир...е мозги новичкам каким то БРЕДОМ !!! Не знаете мастер кода CVAVR - дак зачем ЧУШЬ писать ??? код:Dikoy Sony_Sony Нельзя настроить USART с прерываниями. То же и с прерываниями - можно и ручками, компилятор пропустит. Руками можно написать все что угодно ... Речь о мастере начального кода шла - полезном инструменте для НАЧИНАЮЩИХ !!! Добавление от 22.03.2007 22:54: цитата: Вот "Си для МК" - proavr.narod.ru/05.htm цитата: далее подробности ... PS а что на электрониксе не спросили ? Вас название этого топика не смущает ? |
| 330. Pyku_He_oTTyda, 22.03.2007 23:04 |
И там спросил Название не причем, топик в данное время активный, вот в чем дело.цитата:мне не подходит, так как в зависимости от продолжительности нажатия на кнопку меняется выдаваемая команда, также в зависимости от продолжительности нажатия выдается или нет команда (третья по счету на кнопку) при отпускании кнопки |
| 331. An_private, 22.03.2007 23:08 |
| Pyku_He_oTTyda А как такой кусочек "красиво" написать? Не понял - зачем так сложно то? Переменные left_press и т.д - это что? Как объявлены? И зачем? Почему не сохранять просто значение порта, а потом по банальному and (точнее or, так как у тебя активный уровень 0) проверять конкретные биты. |
| 332. Pyku_He_oTTyda, 22.03.2007 23:20 |
| обьявлены как bit. Вот и спросил, как красивее ![]() |
| 333. Xradio, 22.03.2007 23:22 |
| Sony_Sony Вот помощь как это сделать - proavr.narod.ru/z1.htm Тот же курс, но вид сбоку? Вид, надо сказать, устрашающий! И дело не только в твоём "фирменном" оформлении (при скроллинге странички в голову приходит мысль, что это в хлам укуренный наркоман пишет письмо такому же), а в том, что пример твой с портом и таймером наверняка отпугнёт потенциальных учеников... Из простейшего примерчика ты раздул бог невесть какую страшилку на час внимательного чтения или... Слушай, мамочка, ты клеем случайно не баловался в детстве? "мультики"... комиксы... то как зверь она завоет, то... Первая программка для незнакомых с Си должна быть на ассме (с расшифровкой его аббревиатур) и состоять из двух-пяти строчек. А для знакомых с Си... тоже на ассме, и на Си рядышком. Для незнакомых ни с электроникой ни с языками и программированием, и вообще незнакомых, но искренне желающих познакомиться: тоже, так не преподают. IMHO, Курс должен заинтриговать заглянувшего его почитать с первых же предложений. Мол, смотрите как это просто! Бац-бац, простенький заливщик (понька какая-нить - пять проводков) контроллер за 50-60 р... Припаяли, залили? Видите, как интересно это мигает? А вот, теперь и начнем учиться это, и гораздо более красивое, делать сами. А в качестве демонстрашки я бы сделал восемь светодиодов для развертки какого-нибудь слова. Помнишь, была такая схемка на рассыпухе в каком-то журнале - слово КИНО рисовала? Ученик наверняка сильно захочет своё имя так изобразить. 100% - сделает, и// понеслось. |
| 334. Qwertty, 22.03.2007 23:32 |
| Pyku_He_oTTyda Ну примерно так: код:Нажатие нескольких кнопок тоже определиться - в этом отличие. Функцию вообще-то лучше сделать возвращающей значение key_press. Можно применить switch, но код вырастет из-за приведения типов к int. Хотя написано будет красивее... Но все это тоже неправильно , я просто переписал исходный код, не меняя алгоритма опроса. А ведь главное как раз алгоритм. У кнопок есть дурацкая особенность дребезг, с ним НУЖНО бороться. Так что тут еще есть над чем работать ![]() И мне непонятно зачем на каждую кнопку по переменной. Достаточно в одном байте хранить все кнопки сразу. Все равно в обработчике будут снова условия if (up_press==1)... А ведь можно в обработчике сделать if ((key&(1<<key_set))... так будет короче и быстрее. На мой взгляд, все подобные курсы не учат главному - правильно думать . Как в анекдоте про программиста и стакан. Можно посмеяться, но в нем правильный подход - предусмотреть все варианты. |
| 335. Sony_Sony, 22.03.2007 23:34 |
| Xradio Курс должен заинтриговать заглянувшего его почитать с первых же предложений. Мол, смотрите как это просто! Бац-бац, простенький заливщик (понька какая-нить - пять проводков) контроллер за 50-60 р... Припаяли, залили? Видите, как интересно это мигает? Дак посмотрите внимательно ! ТАК именно и сделано ! proavr.narod.ru даже 60 руб не нужно... Шаг 1, Шаг 2 и так далее. Вы просто не читали с начала. z1.htm - это практическое упражнение 1 уже ПОСЛЕ теоретического курса ! |
| 336. An_private, 22.03.2007 23:39 |
| Qwertty И мне непонятно зачем на каждую кнопку по переменной. Достаточно в одном байте хранить все кнопки сразу. Все равно в обработчике будут снова условия вот и я о том же |
| 337. Pyku_He_oTTyda, 22.03.2007 23:47 |
Пока оставил так, спать хочу... ![]() код: mode_press=1; и т.д. определил как bit, так что в один регистр влезли. Кнопки опрашиваю каждые 64 мс, по первому нажатию пошла команда, если кнопку держим, то через 408 мс другая и т.д. через 408мс. если прошло 408 мс, то тогда реагирует и на отпускание третьей командой, за такое время любой дребезг успокоится |
| 338. An_private, 23.03.2007 00:03 |
| Pyku_He_oTTyda Пока оставил так, спать хочу ужас какой... первая часть вообще никакого смысла не имеет - ты получаешь PINA, то есть байт, за каким-то чертом длинными длинными ифами из него собираешь новый байт с изменением порядка битов. Зачем? это вообще жуть if((up_press==1)||(down_press==1)||(left_press==1)||(right_press==1)||(mode_press==1)||(set_press==1)) на хрена? не проще ли? set_press = ((~PINA & 0x3F) == 0) хотя вообще эти битовые переменные не нужны вообще - куда проще просто сохранить PINA в unsigned char и дальше любые необходимые действия делать с сохраненным значением - без разбора на биты |
| 339. Tahoe, 23.03.2007 02:52 |
| Sony_Sony Речь о мастере начального кода шла - полезном инструменте для НАЧИНАЮЩИХ !!! Во-во. Расплата за пользование "мастера" наступает мгновенно. Я вот про это: UCSRB=0x18; Офигительно грамотно. СтОит ли удивляться после этого, что народ так и продолжает потом писАть. Вместо нормального и понятного:UCSRB = ( 1 << RXEN ) | ( 1 << TXEN ); |
| 340. КРОКОДИЛ, 23.03.2007 04:33 |
| Dikoy Да еще одну фичу забыл - кварец желательно использовать на 10,245Мгц. Для МК в смысле?.. Ну да -это нужная частота в трансивере. Добавление от 23.03.2007 04:41: Xradio Добавление от 23.03.2007 04:55: Dikoy |
| 341. Xradio, 23.03.2007 07:59 |
| Sony_Sony Дак посмотрите внимательно ! ТАК именно и сделано ! Значит молодец. Но, поверь, хоть у меня и заторможенное психическое развитие - ЗПР, но даже и такая подача материала не помогла бы освоить контроллер. Хотя, что-то в твоей методике есть - ночью приснились красные большие буквы... ![]() КРОКОДИЛ Ну не до мигалок мне сейчас -нужно конкретно решить какая будет конструкция синтезатора, какие микросхемы, заказать их, и показать наличие хотябы одного рабочего синтезатора, - а уж потом можно делать и мигалки и свистелки и визжалки, а если делать в обратном порядке -то скорее всего мигать мне уже ничем не придется! Тут ты неправ. Управляемый микроконтроллером UHF PLL cинтезатор на специализированной микросхеме получается в 100% случаев умеющего это делать. Если ты взялся учиться на такой задаче, то огребешься множеством проблем... Это уже видно хотя бы из: Ну что получится на LMX-2316 сделать кратность 12,5кгц? Неужели ты даже документацию не прочитал? Там же все "русским" языком написано... частота опорного кварца делится до частоты сравнения (ref.) фазового детектора, она же и будет численно равна минимальному шагу перестройки. Если ты затеял что-то произвести на свет и не для баловства, а для рынка, но сам не сном не духом в том предмете, то лучше найми профессионала. А сам, чтобы время даром не терять начинай с мигания светодиодом. Если в электронике не новичок, то я гарантирую: через неделю ты абсолютно уверенно примешься за любую задачу, включая управление синтезатором. Кстати сказать, я почему-то начал изучать (тогда еще МК51 с внешней памятью программ) сразу в задаче замены процессора в UHF трансивере Icom с "морским" диапазоном частот. Сильно хотелось его переделать на радиолюбительскую "двойку". И успешно! Через месяц у меня был супер-пупер аппарат с дисплеем на АЛС314 вместо родного ЖКИ, двумя типами сканера (до 64 каналов в памяти и поискового - с возможностью пропуска каналов с помехой, запись найденных в память, удалением ненужных - это все "редактор", возможностью работы на разнесенных частотах и т.д.) Причем, для этого пришлось снять протокол обмена штатного PLL с помощью самодельного "LPT анализатора", вычислить по эпюрам все его нюансы. Далее, сделать опять же свой эмулятор ПЗУ (тогда флэш контроллеров не было) и всё это соединить в одной задаче. А сейчас? любой даташит - пожалуйста, внутрисхемный отладчик, симулятор - нате, спросить кого - как двабайта. Красота! Так что, смелее надо жить. |
| 342. Dikoy, 23.03.2007 09:17 |
| Sony_Sony Не знаете мастер кода CVAVR - дак зачем ЧУШЬ писать ??? Во-1 спокойнее, а то примкну к секте 123ненависников вместе с An_private. Во-2, см фото (мега 8, кварц твой). У меня вижон 1.24.6. Леченый. До этого был 1.23 нелеченый. Ни в одном UART выще 115200 не ставился - вписывал к. делителя вручную. Руками можно написать все что угодно ... Я это к тому, что компилятор вижона пропускает даже то, что запрещено лицензией, не говоря про то, чего нету в визарде. КРОКОДИЛ Ну да -это нужная частота в трансивере. Тогда 48 мега сподручнее - у неё можно настроить выход частоты на лапку. То есть будет КМОП выход тактовой частоты. Ну что получится на LMX-2316 сделать кратность 12,5кгц? Вчера не успел посмотреть, сейчас почитаю. К сообщению приложены файлы: 1.gif |
| 343. Sony_Sony, 23.03.2007 09:39 |
| Dikoy Ни в одном UART выще 115200 не ставился - вписывал к. делителя вручную. В окне мастера указаны некоторые стандартные чатоты - вы можете вписать в ОКНО МАСТЕРА ЛЮБУЮ нужную скорость ! Коэф. делителей мастер рассчитает автоматически как в примере кода что я дал выше !!! Добавление от 23.03.2007 09:41: Dikoy Добавление от 23.03.2007 09:55: Dikoy |
| 344. Бэтмэн, 23.03.2007 10:25 |
AVR в очередной раз поставил меня в тупик... ![]() Имеется ATtiny2313. Загоняю в неё байты с компа по USART, байты вывожу на индикатор. UDR читаю не по прерыванию, а просто перед циклом индикации. Однако, на индикаторе вижу нечто необъяснимое: при выводе нового числа в UART, оно появляется на индикаторе на какое-то мгновение (имхо на период цикла индикации), а затем устанавливется опять старое (!!!) и держися до тех пор, пока я не введу ещё одно число. Т.е. имеет место появление введёного числа с откатом назад. Что чёрт возьми, происходит? Какой-то странный буфер, что-ли мне всю малину портит? Как вообще работает этот уарт? Я то думал, что если загнать в уарт число, оно так и будет там висеть (в UDR), пока его не заменит следующее. Или оно теряется при чтении UDR? |
| 345. Sony_Sony, 23.03.2007 10:38 |
| Бэтмэн Как вообще работает этот уарт? Советую использовать буфер примеа по примеру - proavr.narod.ru/z5.htm Создать его можно автоматически мастером кода CVAVR. Взять полный CVAVR можно на сером фоне на заглавной страничке указаного сайта. |
| 346. Dikoy, 23.03.2007 10:56 |
| Sony_Sony Вы ж не спросили - "как в мастере CVAVR выставить произвольную частоту UART" а просто заявили что он не позволяет и все ! Ну так надо было намекнуть... Я про эту возможность не знал и просто выставлял вручную... |
| 347. An_private, 23.03.2007 11:13 |
| Бэтмэн Я то думал, что если загнать в уарт число, оно так и будет там висеть (в UDR), пока его не заменит следующее. Или оно теряется при чтении UDR? Теряется. UDR можно читать только один раз и только при установленном флаге RXC (receive complete) |
| 348. Dikoy, 23.03.2007 13:02 |
| КРОКОДИЛ Вопщем, ща тоже на работе запар, по этому пробежался по дш бегло. Насколько понял, данные заливаются во внутренний 21 разрядный рагистр по MICROWIRE интерфейсу. Передача начинается со старшего бита. Как только лапка LE переходит в "1", данные из этого регистра перегружаются в один из трёх регистров внутри микры. В какой именно - зависит от состояния битов С1 и С2, это два старщих бита в слове. Регистры R, N, F соответственно на 14, 18 и 18 бит. Описаны они в табличках на стр. 7-9 и ещё, кратенько, 15-17. Советую сначала прочитать как раз 15-17 стр, а потом уже сначала. Регистр R програмирует опорный делитель. Биты 1-14 содержат коэффициент деления (таблица 1.1.1), биты 15-18 ставятся в ноль. Регистр N состоит из 5 бит добавочного счётчика А и 13 бит счётчика В, ещё есть девятнадцатый бит GO, он отвечает за режим "быстрого захвата" (стр. 11). Частота VCO расчитывается по формуле из 1.2.3 (стр 8) с учётом значений этих регистров. То есть по ней же, можно расчитать значения на нужную частоту. F регистр позволяет управлять разными функциями микры - усыплять её, менять полярность фазового детектора... Короче, от состояния битов в слове зависят все эти фичи. Стр. 9, таблички. Я только одного не понял - если там MICROWIRE, адрес синтезаора по умолчанию нулевой, или в микровире вообще нету адреса?.. ![]() Короче, прошивку для МК я тебе помогу сделать, и даже ПО для компа для заливки сетки частот и т.д. Но в алгоритме придётся самому разбираться... То есть назначение каждого резистра, что они дают и на что вляют, по каким формулам считаются. У меня просто нет времени, да и в синтезаторах я нихрена не понимаю ![]() Добавление от 23.03.2007 13:06: Ps: www.translate.ru |
| 349. Xradio, 23.03.2007 13:20 |
| Dikoy MICROWIRE это не 1-WIRE. Но посторонние данные можно просто не защелкивать. так и делал: линии data & clk параллельно работали на дисплей с последовательной загрузкой. |
| 350. КРОКОДИЛ, 24.03.2007 03:20 |
| Xradio Неужели ты даже документацию не прочитал? Там же все "русским" языком написано.. И где это даташиты на руском языке???! ![]() частота опорного кварца делится до частоты сравнения (ref.) фазового детектора, она же и будет численно равна минимальному шагу перестройки. Ну да! -я раньше тоже так думал, но в документации на LM7001J конкретно написан шаг с которым она может работать, и шага 12,5Кгц там нет. ![]() то лучше найми профессионала ![]() А сам, чтобы время даром не терять начинай с мигания светодиодом. Я чегото не вьезжаю -чем мигалки лучше синтезаторов??? ![]() Добавление от 24.03.2007 03:38: Dikoy Добавление от 24.03.2007 03:49: Dikoy |
| 351. Tahoe, 24.03.2007 04:36 |
| КРОКОДИЛ но в документации на LM7001J конкретно написан шаг с которым она может работать, и шага 12,5Кгц там нет Сейчас глянул. Да, так и есть. Это потому, что там уже за тебя выбрали n-значений опорного счётчика. А тебе позволяют лишь выбрать какое-то одно из этих значений. Но вообще-то этот камень имеет статус discontinued product ( что-то типа нашего "снят с производства" ). На кой он тебе вообще нужен? А в обсуждавшейся выше LMX2316 таких извратов нет. Какой хошь шаг, такой и ставь. Хотя если очень "хоцца", можно попробовать и с твоей LM7001J поиграть. Вместо 7,2 МГц попробовать втулить ей кварц с другим номиналом. Но надо смотреть внимательно даташит, може там какие эффекты побочные вылезут ( помимо ограничения в "скорострельности", само собой ).Но вообще если хочешь сделать побыстрее, послушай Xradio и убей день-другой на моргалку светодиодную. Что бы потом, посреди большого проекта, со всякими старт-апами и сегментами не пришлось разбираться "внезапно". ![]() опять вставляю в Ворд и вручную переношу картинки -геморой тот еще! Угу. Может проще слова агличкие запомнить? Там их, собсно, сотня-другая от силы наберётся. А "редкие" - лезь на www.lingvo.ru Один-два раза залезешь, потом уже не забудешь. ![]() |
| 352. Xradio, 24.03.2007 07:07 |
| КРОКОДИЛ Tahoe все рассказал про "особенности". Но вообще-то лучше почитать про PLL синтезаторы. У Ридико Леонида Ивановича (здесь бывает) есть замечательно оформленная работа на русском языке в которой очень доходчиво изложены принципы и PLL и DDS. Но у меня в экспедиции нет ссылки на неё. |
| 353. Dikoy, 24.03.2007 08:43 |
| КРОКОДИЛ сначала копирую и вставляю в Ворд а потом сохраняю как веб страницу, а потом перевожу, опять копирую, опять вставляю в Ворд и вручную переношу картинки -геморой тот еще! А нафига? ![]() Тебе что, нужен дословный перевод? ![]() Взял блокнотик, и вписывай туда вручную все полезные мысли, что встретишь в ДШ, а для этого достаточно её напрямки в промте перевести, кусками. Разобрался что куда и на что делит? |
| 354. Sony_Sony, 24.03.2007 09:27 |
| Xradio Tahoe лучше почитать про PLL синтезаторы. У Ридико Леонида Ивановича (здесь бывает) есть замечательно оформленная работа на русском языке в которой очень доходчиво изложены принципы и PLL и DDS. Но у меня в экспедиции нет ссылки на неё. Ссылки ОЧЕВИДНО находятся в кратком курсе как и почти всё необходимое начинающему. Смотрите - proavr.narod.ru/01.htm поиск Ctrl+F "Ридико" Добавление от 24.03.2007 09:33: КРОКОДИЛ Добавление от 24.03.2007 09:43: Dikoy |
| 355. Xradio, 24.03.2007 12:15 |
| Sony_Sony именно записывать на бумагу - это улучшает запоминание И не просто на листочки, а в "Рабочая тетрадь №1 такого-то (Крококодила)". И обязательно аккуратным почерком и чертежами с внятным стилем квинтэссенций. Тетрадь, как ничто другое стимулирует творческий процесс и организует. Кроме того, "рукописи не горят" в отличие от компьютеров... Добавление от 24.03.2007 12:38: КРОКОДИЛ |
| 356. Sony_Sony, 24.03.2007 13:32 |
| Вот вспоможение в написании мигалки - proavr.narod.ru/z1.htm Мигалку написать - значит научится управлять ножками МК и делать паузы. С этими навками уже можно програмно реализовать последовательную передачу данных в синтезатор по рисункам-диаграммам в ДатаШите синтезатора. |
| 357. An_private, 24.03.2007 18:03 |
| Xradio Как правило, через n минут светодиод мигает у бывалых в старых МК, и через n часов у впервые помазанных в эту религию табака и кофе до первых петухов Угу. Со мной в одной комнате сидит человек, который насмотревшись на меня тоже решил AVR освоить Ну дал я ему книжку, дал чипы и все нужное Сложнее всего оказалось объяснить - что такое прерывания и как сделать так, чтобы отсчитав N прерываний светодиод зажегся, а еще после N - погас В понятие программирования по событиям начинающим врубиться трудно... |
| 358. Sony_Sony, 24.03.2007 20:20 |
| An_private всего оказалось объяснить - что такое прерывания Пусть почитает - proavr.narod.ru/03.htm |
| 359. An_private, 24.03.2007 21:24 |
| Sony_Sony Пусть почитает я не настолько садист - лучше сам объясню |
| 360. Sony_Sony, 24.03.2007 21:32 |
| An_private Sony_Sony Пусть почитает я не настолько садист - лучше сам объясню Дак вы вроде уже пробовали ... An_private Сложнее всего оказалось объяснить - что такое прерывания |
| 361. Xradio, 24.03.2007 22:33 |
| /Работа МК - шевелить, дергать ножками./ /т.е. программа работающая в МК буквально "дергает" его ногами в нужные моменты времени. / И в таком духе весь длиннющий лубок с жирными кляксами - "скаска-раскраска"... Ладно с этим, но зачем столько лишнего материала начинающему? - я сразу же споткнулся о тягомотнейшее описание сопротивления дергающихся ножек. Времена фронтов? зачем они начинающему? \По отдельности рулить прерываниями сложней это ДШ надо читать ... \ - Как и про все остальное, столь потешно излагаемое тобой, Автор... В общем, жутчайший экзерсис из образных "дерганий ножками", фирменных аббревиатур регистров (почему нерасшифрованных?) и множества лишних деталей котлет. А искренне жаль, что это и не букварь и не справочник. Впрочем, IMHO. Добавление от 24.03.2007 23:38: Вообще-то "справочник", тут я погорячился - куча полезных ссылок на первой странице. Только за это - респект! Их бы и локализовать как-то в спецраздел, а то ить"Yahoo" поневоле видеть вынуждаешь. |
| 362. Sony_Sony, 24.03.2007 23:53 |
| Xradio фирменных аббревиатур регистров (почему нерасшифрованных?) Наверно вы не внимаетельно читали. Вот цитата со страницы /03.htm цитата: Добавление от 24.03.2007 23:56: Xradio Добавление от 24.03.2007 23:57: Xradio Добавление от 24.03.2007 23:59: Xradio |
| 363. Xradio, 25.03.2007 00:42 |
| Sony_Sony ЧТО ВЫ ЧИТАЛИ proavr.narod.ru/03.htm Может быть я и перегнул с "тягомотнейшим", но всему свое место и время. Зачем отвлекаться на устройство деталей в главном виде "модели для сборки"? Про "лишнее" и "оформление": Возможно, что негатив восприятия возникает после привычного для глаз классического стиля оформления корпоративных документов или строгой технической литературы. Здесь же открывается какой-то импрессионизм, символизм, кубизм и прочийизм. . Допустим, на первый раз кто-то и асилил "заглавные буквы", но ведь он же (если конечно крепок нервами) и второй и третий раз будет перечитывать нужные места, а там ВНИМАНИЕ!, НЕ ЗАБУДЬ!, Я ТЕБЯ УМОЛЯЮ!!!В общем, вот такое мнение моё. |
| 364. Dikoy, 25.03.2007 00:46 |
| Sony_Sony именно записывать на бумагу - это улучшает запоминание. Да нафига там запоминание? Просто проще, чем долбить в ворд и т.п. Можно плюсики и восклицательные знаки ставить повсеместно, маркером выделять особо важные мысли... Короче, при проектировке такого "резюме" бывает достаточно, чтобы не наделать ляпов. А полноценный перевод ДШ... Разьве что с целью выложить у себя на сайте в помошь будущим поколениям. Себе это нафиг не нужно. |
| 365. Sony_Sony, 25.03.2007 11:33 |
| Xradio вот такое мнение моё. Я уважаю право людей иметь свое мнение. Добавление от 25.03.2007 11:35: Dikoy |
| 366. КРОКОДИЛ, 25.03.2007 11:57 |
| Tahoe Хотя если очень "хоцца", можно попробовать и с твоей LM7001J поиграть. Вместо 7,2 МГц попробовать втулить ей кварц с другим номиналом. Но надо смотреть внимательно даташит, може там какие эффекты побочные вылезут ( помимо ограничения в "скорострельности", само собой ). Не ненужно с ней играть она все равно нужные частоты не потянет -у нее ограничение по быстродействию в 130МГЦ. Кое как до 144 еще со скрипом дотягивает но не более. Может проще слова агличкие запомнить? Да вот както неполучается ![]() Dikoy Разобрался что куда и на что делит? Нет пока, -болею третий день. ![]() Sony_Sony Смотрите - proavr.narod.ru/01.htm поиск Ctrl+F "Ридико" А можешь сюда ссылку кинуть? -У меня сечас скорость 2килобита в секунду -неделю искать буду! ![]() Взял блокнотик, и вписывай туда вручную все полезные мысли, А если не возникает полезных мыслей? ![]() |
| 367. Sony_Sony, 25.03.2007 12:42 |
| КРОКОДИЛ А если не возникает полезных мыслей? Записывай чужие относящиеся к делу - лучше запомнишь и "под рукой" будут. |
| 368. КРОКОДИЛ, 25.03.2007 16:10 |
| Xradio Sony_Sony Смотрите - proavr.narod.ru/01.htm поиск Ctrl+F "Ридико" Дык там ничего нет про PLL, а все про DDS ![]() |
| 369. Xradio, 25.03.2007 16:34 |
| КРОКОДИЛ Вот, нашлось гуглом за 0,43 секунды. Может быть и не так подробно, но для ознакомления - вполне. |
| 370. Sony_Sony, 25.03.2007 16:34 |
| КРОКОДИЛ Sony_Sony Смотрите - proavr.narod.ru/01.htm поиск Ctrl+F "Ридико" Дык там ничего нет про PLL, а все про DDS Вы поражаете меня своей ВНИМАТЕЛЬНОСТЬЮ !!! Либо у меня интернет другой либо в начале статьи все же рассказан принцип PLL с картинкой. |
| 371. Xradio, 25.03.2007 16:43 |
| И вот еще: http://nscrus.ru/files/kit0106_p50.pdf (260 Кб.) Ты тоже на GPRS сидишь? Иногда траффик здорово падает, наверное из за количества занятых каналов. Как бы сделать монитор GSM сети из старенькой мобилы? - просто чтобы видеть загрузку своей соты. |
| 372. КРОКОДИЛ, 25.03.2007 21:56 |
| b]Xradio[/b] Ты тоже на GPRS сидишь? У меня был аснхронный интернет через спутник -исходный трафик по GPRS а входящий по спутниковой тарелке -так можно было сайты целиком закачивать, а сейчас подписка на спутнике закончилась и работаю чисто на GPRS/ Как бы сделать монитор GSM сети из старенькой мобилы? - просто чтобы видеть загрузку своей соты. Вроде он по обычному протоколу цифровой связи работает АХ-25 -такойже как в любительской цифре, а в мобиле разобратся не смог, хотел привлечь к этому делу товарища -ремонтера мобильников, но он только головой качает и говорит что ничего не получится. А вообще неплохо было бы иметь КГБешную программу для контроля GSM - потому что чисто аппаратными средствами здесь не обойтись. ![]() Добавление от 25.03.2007 22:00: Xradio |
| 373. Xradio, 25.03.2007 22:11 |
| КРОКОДИЛ Где? О как... ссылку то не вставил http://ru3ga.qrz.ru/UZLY/dds.htm |
| 374. КРОКОДИЛ, 26.03.2007 04:02 |
| Sony_Sony Вы поражаете меня своей ВНИМАТЕЛЬНОСТЬЮ !!! Ну да, ну да! ![]() |
| 375. КРОКОДИЛ, 26.03.2007 04:17 |
| Xradio Сегодня наконецто получил из Киева дисплеи и AT90S1200, сделал програматор см.рис. и попробовал програмировать ICprogом , програматор в софте выставил как JDM84, - вроде нормально и заливается прошивка и читается, вот только биты защиты почемуто не работают При заливке прошивки устанавливаю галочки на оба бита, а потом микросхема свободно читается и после считывания галочки исчезают! -почему так происходит? ![]() К сообщению приложены файлы: 1.gif |
| 376. Xradio, 26.03.2007 07:42 |
| КРОКОДИЛ Питание на контроллер лучше брать от внешнего источника или от того, который и будет питать устройство в дальнейшем. Тогда ты можешь полновесно обвязать контроллер всей планирующейся периферией. Т.е. писать программу можно сразу в готовом дивайсе, поэтапно "усугубляя" код. Залил нех - смотришь, что творит твоя железка. С битами защиты - не знаю, не пользовался ICprog. |
| 377. КРОКОДИЛ, 26.03.2007 08:02 |
| Xradio А какую прогу можно еще применить под эту схему програматора? Где можно найти даташиты на руские микросхеммы? И где можно подобрать на них импортные аналоги? ![]() |
| 378. Sony_Sony, 26.03.2007 08:11 |
| КРОКОДИЛ програматор в софте выставил как JDM84 Он ИМХО для PIC |
| 379. Xradio, 26.03.2007 08:35 |
| КРОКОДИЛ А какую прогу можно еще применить под эту схему програматора? Этой схемой лучше не пользоваться. Примени буферизованный интерфейс, например, типа STK-200 Он позволяет полностью отключаться от контроллера переводом в Hi-Z своих линий, твоя же схема будет висеть на ногах контроллера все время. Т.е., если там приходит 12 вольт с COМ порта и ограничивается стабилитроном до 5.6, то ты не сможешь использовать этот Пин как полноценный вход. А как выход он будет пересиливать эту единичку. вопщем - че попало. А STK-200 работает из AVReal, Ponyprog, AVRisp, Kanda. И вообще, "классика" для LPT порта. У автора этой темы есть все ссылки и материалы. |
| 380. Sony_Sony, 26.03.2007 11:12 |
| КРОКОДИЛ, почему вы не слушаете то что вам советуют ? |
| 381. КРОКОДИЛ, 26.03.2007 22:40 |
| Xradio твоя же схема будет висеть на ногах контроллера все время. Т.е., если там приходит 12 вольт с COМ порта и ограничивается стабилитроном до 5.6, то ты не сможешь использовать этот Пин как полноценный вход. А как выход он будет пересиливать эту единичку. вопщем - че попало. Дык мне то нужно всего навсего залить уже готовую отработанную прошивку в два камня -и никаких эксперементов. STK-200 собирать сейчас нет ни времени ни возможностей, А Ponyprog на моем компе почемуто не работает. ![]() |
| 382. Sony_Sony, 26.03.2007 23:00 |
| КРОКОДИЛ STK-200 собирать сейчас нет ни времени ни возможностей, Ага ... 5 проводков тоже подключить времени нет ? |
| 384. КРОКОДИЛ, 27.03.2007 00:46 |
| Sony_Sony Ага ... 5 проводков тоже подключить времени нет ? Ну вопервых у меня нет в наличии сейчас разьема под паралельный порт, а во вторых тот програматор что я собрал тоже отлично работает -так зачем чтото мудрить изза двух камней? Только не могу понять почему биты зашиты не включаются. Сейчас разобрался с Пони прогом -заработал он всетаки, а эта схема какраз под него расчитанна, но биты защиты все равно не включаются ![]() Добавление от 27.03.2007 01:02: Xradio Добавление от 27.03.2007 01:10: Xradio Добавление от 27.03.2007 01:21: Sony_Sony Добавление от 27.03.2007 05:16: Xradio |
| 385. Xradio, 27.03.2007 07:45 |
| КРОКОДИЛ А камень какой? Хороший вопрос... Intel 80С32, кажется, с ПЗУ 573РФ2... Процессор отпаял с какого-то древнего винчестера. Сейчас наверное подойдет какой-нибудь из AT89... Этим приемничком в виде макетки дома баловался, но однажды (а, может быть и периодически) его кот обоссал. Пришлось утилизировать. Диапазон VFO гетеродина получается легко.А схема подключения? Программа? синтезатор к LPT? - Справочник с распиновкой LPT и описание его регистров. Программа? хм-м... бэйсик, паскаль, си, кобол, алгол, фортран, ... |
| 386. Sony_Sony, 27.03.2007 08:29 |
| КРОКОДИЛ Sony_Sony КРОКОДИЛ, почему вы не слушаете то что вам советуют ? Да потомучто запутался я уже окончательно! Во всяких Кодэвиженах, ВМЛабах, Протеусах, iccv7avr -и Т.Д. и Т.П. -Я ведь не Кай Юлий Цезарь Поэтому и есть страница /07.htm - "как и чем прошить МК" - там ни какой путаницы - только CVAVR. Добавление от 27.03.2007 08:31: Xradio |
| 387. Xradio, 27.03.2007 08:44 |
Сайт Ковтуна... О, господи, вы случаем не братья? Вот скажи мне, как это читать? http://valery-us4leh.narod.ru/dlpt.html Зрение у вас что-ли другое? инопланетяне... А материал интересный, молодцы! Добавление от 27.03.2007 08:58: КРОКОДИЛ Думаешь наверное, что я глумлюсь? Ничуть! не более твоего "вынь да положь" |
| 388. КРОКОДИЛ, 27.03.2007 14:10 |
| Xradio Думаешь наверное, что я глумлюсь? Ничуть! Да нет вовсе не думаю, просто ты разговариваешь со мной как с человеком который хоть чтото понимает в програмированиии -возьми то, сделай это, помигай лампочками, поддключи к порту, а мне вовсе непонятно как она сволочь без лошадей всетаки едет! Дело не в моей тупости или наглости а в том что я абсолютно не знаю английского и что самое страшное не могу его запоминать. А для новичка согласись запомнить нужно очень много,- слишком большой обьем непонятной информации. Вот например совет помигать светодиодами - Я позавчера пытался откомпилировать готовый исходник, просидел почти двое суток над Кодевиженом и ВМлабом но так и не смог в них разобратся. Зашел на сайт Sony_Sony а там вообще глаза разбегаются в разные стороны -сосредоточится не возможно, и то что знал до этого с головы повылетало! Впрочем особой нужды компилировать этот исходник не было, так как автор дал и НЕХ файл но всеже я пытался разобраться для себя |
| 389. Xradio, 27.03.2007 14:23 |
| КРОКОДИЛ "Лиха беда - начало". Это самое важное, что ты уже начал знакомиться с предметом. Главное - не бросить задел, испугавшись или разочаровавшись. Всё замигает! Ещё. Всё же не стремись спрашивать у кого-то, если что-то не получается "в лёгкую". Как правило, не получается - от недостатка знаний в этом предмете. А их и не даст никто если сам не возьмешь. |
| 390. An_private, 27.03.2007 14:26 |
| КРОКОДИЛ а там вообще глаза разбегаются в разные стороны -сосредоточится не возможно, и то что знал до этого с головы повылетало отличное описание дизайна ![]() |
| 391. КРОКОДИЛ, 27.03.2007 14:36 |
| Sony_Sony Поэтому и есть страница /07.htm - "как и чем прошить МК" - там ни какой путаницы - только CVAVR. А навести порядок у себя на сайте не пробовал? - слишком много "воды" на страницах, дело даже не в пестроте, а в том что в учебном тексте слишком много посторонних предметов, чтобы распечатать хотябы одну твою страничку уходит целая пачка бумаги, а смысловой нагрузки очень мало! Сделай учебный текст отдельно, закачки на отдельной страничке, для ссылок тоже отдельная страничка, и страничка новостей... Будет порядок на сайте люди сами туда будут заходить и не нужно будет туда никого пихать силой. |
| 392. Xradio, 27.03.2007 14:43 |
| КРОКОДИЛ А трассировщиком кодевижна пробовал тот исходник прощелкать? |
| 393. КРОКОДИЛ, 27.03.2007 14:53 |
| Xradio Ну вопервых я незнаю что такое трасировщик и что он делает, а во вторых в нем нет нужной микросхеммы, поэтому взялся за ВМлаб но тоже не смог разобратся, я даже не понял на каком языке исходник. -Сейчас попробую вставить. код:;Программа для синтезатора к рст."ЛЁН" |
| 394. Dikoy, 27.03.2007 16:22 |
| КРОКОДИЛ просидел почти двое суток над Кодевиженом и ВМлабом но так и не смог в них разобратся. Я ж те говорил, что напишу прошивку. Ты разберись с синтезатиором - нафига там те делители и что в них надо писать. Я ж не знаю как он работает! Битные посылки сформироватьт могу, но надо же знать, на что они влияют в самом синтезаторе. С помошью промтап можно и без знания английского разобраться. У меня знакомый французский учил и ничё, переводит... |
| 395. Sony_Sony, 27.03.2007 16:30 |
| Dikoy КРОКОДИЛ просидел почти двое суток над Кодевиженом и ВМлабом но так и не смог в них разобратся. Ты делал пример с заглавной страницы proavr.narod.ru ? Что конкретно не получилось ? Добавление от 27.03.2007 16:49: Dikoy |
| 396. Xradio, 27.03.2007 17:00 |
| КРОКОДИЛ Сейчас попробую вставить Это ассемблер - самый простой язык из всех языков. Его лучше в AVRstudio "вставить". И по шажкам посмотри как работает программа и меняет все внутренности микроконтроллера. Многое сразу поймешь. |
| 397. Sony_Sony, 27.03.2007 17:02 |
| Xradio Многое сразу поймешь. Сумлеваюсь. |
| 398. КРОКОДИЛ, 27.03.2007 17:07 |
| Dikoy Ты разберись с синтезатиором - Да вот пытаюсь. Я ж не знаю как он работает! Вобщем приметно так: частота кварца делится неизменяемым коофициентом деления до шага сравнения -в нашем случае до 12,5 килогерца, а частота ГУНа делится делителем с переменным коофициентом деления тоже до частоты сравнения тоесть 12,5кгц. Пример:170Мгц разделить на 0,0125мгц=13600, а если нам нужна частота 170,0125мгц то коофицент деления будет уже 13601 и так далее. Обе частоты, деленная от кварца и деленная от ГУНа поступают на систему сравнения частоты и фазы. А что нужно писать незнаю ![]() Добавление от 27.03.2007 17:13: Xradio |
| 399. Sony_Sony, 27.03.2007 17:14 |
| lmx2316 - последовательная передачи данных. начало av r1 2 3 .n m. ru/z 1 2.h tm |
| 400. Xradio, 27.03.2007 17:22 |
| КРОКОДИЛ ночью скачаю попробую Я уже проверил, работает. Будут вопросы - задавай. |
| 401. КРОКОДИЛ, 27.03.2007 18:06 |
| Dikoy С помошью промтап можно и без знания английского разобраться Так он на программах кнопки не переводит, есть у меня хорошая програмка специально для кнопок Babylon6 но она поработала несколько дней и начала просить денег -сволочь такая. ![]() Xradio Будут вопросы - задавай. Хорошо. |
| 402. Xradio, 27.03.2007 19:11 |
| Sony_Sony imho неудачно выбрал пример с частотой сравнения 1.25 кГц. Синтезатор имеет очень важный параметр - время установления частоты. Дело в том, что процесс этот имеет колебательный характер и жестко связан с временем петлевого фильтра ФАПЧ. Чем ниже частота сравнения, и больше постоянная времени, тем дольше будет устанавливаться частота VFO. Поэтому, если назначение твоего синтезатора - FM связь, то такой мелкий шаг не нужен, поскольку разнос между каналами не может быть меньше 12.5 kHz. Его и выбери в расчетах - всё будет ближе к реальным задачам, да и примерчик упростится для расчетов (1,2,3,... 31) Еще насчет неизменного твоего стиля: "Постарайтесь четко понять что означают эти интервалы и обозначения". Кому надо, тот поймет с одного взгляда на диаграмму, а людям никогда не видившим осциллограф, что Защёлка, что Прищепка - монописуально... Они читать это не будут |
| 403. Sony_Sony, 27.03.2007 19:43 |
| Xradio такой мелкий шаг не нужен, поскольку разнос между каналами не может быть меньше 12.5 kHz. Научи как в lmx2316 сделать частоту сравнения 12.5 kHz при частоте такта 10245 КГц ? КРОКОДИЛ до частоты сравнения тоесть 12,5кгц. Пример:170Мгц разделить на 0,0125мгц=13600, а если нам нужна частота 170,0125мгц то коофицент деления будет уже 13601 и так далее А то что ты просил - 10245 КГц как поделить чтоб получить 12,5кгц ??? |
| 404. Dikoy, 27.03.2007 21:34 |
| Sony_Sony В синтезатор нужно загонять по 21 биту начиная со старшего. Дык про это я ещё на прошлой странице писал ![]() Меня интересовало, какой из 3 регистров на что (физически) влияет. У крокодила то затык был в прицеплении МК и написании прошивки, вот я и предложил ему помощь в этом, если он объяснит, какие значения в эти регистры надо писать. Точнее - что эти значения в итоге дают. Xradio Это ассемблер - самый простой язык из всех языков. Подразумевающий знание всех регистров, битов и т.д. Не знаю, сколько времени надо на замигивание светодиода на асме с полным отсутствием познаний в программировании, но много ![]() |
| 405. Sony_Sony, 27.03.2007 22:04 |
| Dikoy Sony_Sony В синтезатор нужно загонять по 21 биту начиная со старшего. Дык про это я ещё на прошлой странице писал Я отдута и списал ! |
| 406. Xradio, 27.03.2007 23:03 |
| Sony_Sony Не делится целочисленно? Значит и не надо. Если это "Лен", насколько я помню, у них вообще одно преобразование, 455 кГц нет. А опорный кварц для синтезатора вообще-то должен быть очень точный и термостатированный. TCXO - модуль. Как-то сложилась традиция применять их на частоту 12800 кГц. |
| 407. Sony_Sony, 27.03.2007 23:09 |
| Я делаю не по традиции а по ТехЗаданию ! А оно от КРОКОДИЛА поступило несколько страниц назад и там указана желательная чатота такта 10245 КГц. Добавление от 27.03.2007 23:16: Xradio код: |
| 408. Xradio, 27.03.2007 23:46 |
| Sony_Sony Мне Си кажется проще и удобней Дело вкуса, и времени. Конечно быстрее писать на Си, кто ж спорит? Но судя по вот такому заявлению: Dikoy Не знаю, сколько времени надо на замигивание светодиода на асме с полным отсутствием познаний в программировании, но много ситуация уже близка к катастрофической... Если Сишник не владеет ассемблером, не знает как на самом деле работает камень... то огребаться и огребаться конфам тупейшими затыками горе-программистов-железячников... ![]() |
| 409. Sony_Sony, 27.03.2007 23:47 |
| ИМХО - проблема в том что читать не желают. |
| 410. Xradio, 28.03.2007 00:01 |
| Sony_Sony читать не желают А ты не предполагаешь, что делая добро людям, на самом деле наносишь вред? Попробую объяснить вышезаявленное. Если человека кормить только мягкой, уже пережёванной пищей, отрыжками так с-зть, то он не сможет есть настоящее мясо. А тем более сам охотиться на это мясо... И зубы у него выпадут. Останеться только глотка и ж... в тщедушном тельце Добавление от 28.03.2007 00:06: Так чта... уподобляясь Минздраву, можешь поместить это в качестве эпиграфа на шапку своего сайта. |
| 411. КРОКОДИЛ, 28.03.2007 00:07 |
| Sony_Sony А то что ты просил - 10245 КГц как поделить чтоб получить 12,5кгц ??? Ну я позже оговорил что если не получится то можно в принципе ставить любой кварц на усиотрение програмиста, просто мне в трансивере придется ставить еще один кварц. Но можно применить и кварц на 10,250 -тогда кофицент будет 820, а сменить фильтры ПЧ это не проблема. |
| 412. An_private, 28.03.2007 00:08 |
| Xradio А ты не предполагаешь, что делая добро людям, на самом деле наносишь вред? зато хорошо развивает психическую устойчивость и умение пользоваться поиском - без этого на его страничке делать нечего ![]() |
| 413. Xradio, 28.03.2007 00:12 |
| КРОКОДИЛ а сменить фильтры ПЧ это не проблема Еще какая проблема! |
| 414. КРОКОДИЛ, 28.03.2007 00:14 |
| Xradio Не делится целочисленно? Значит и не надо. Если это "Лен", насколько я помню, у них вообще одно преобразование, 455 кГц нет. А опорный кварц для синтезатора вообще-то должен быть очень точный и термостатированный. TCXO - модуль. Как-то сложилась традиция применять их на частоту 12800 кГц. Не тот синтезатор который проэктирует ('Dikoy') будет ставится далеко не на ЛЕНы а на более современные трансиверы. А на ЛЕНы будет ставится синт исходник которого я сегодня приводил Добавление от 28.03.2007 00:17: Xradio |
| 415. Xradio, 28.03.2007 00:19 |
| КРОКОДИЛ который проэктирует ('Dikoy') А чего его проЭктировать? У тебя же есть уже исходник с достаточными комментариями чтобы применить в любом трансивере. Чуть подредактировать. А в дальнейшем ты и сам допишешь всякие "навороты" |
| 416. КРОКОДИЛ, 28.03.2007 00:19 |
| Sony_Sony ИМХО - проблема в том что читать не желают. Так сделай читабельный сайт -я тебе уже говорил -мухи отдельно, варенье отдельно, и котлеты тоже -тогда посетителей будет море. |
| 417. Xradio, 28.03.2007 00:21 |
| КРОКОДИЛ А перекрутить 5кгц глядя на экран характериографа вообще мелочи. Что-то я престал тебя понимать... Колись, какой стаж в радиотехнике? |
| 418. КРОКОДИЛ, 28.03.2007 00:27 |
| Xradio А чего его проЭктировать? У тебя же есть уже исходник с достаточными комментариями чтобы применить в любом трансивере. Чуть подредактировать. А в дальнейшем ты и сам допишешь всякие "навороты" Так тамже микросхема не та -там стоит LM7001 -какраз только для ЛЬНОВ. Да и снята она уже с производства. И камень АТ90 -тоже мне эго рассоветовали здесь применять, а навороты мне не нужны -наоборот я буду их на ЛЕНы без дисплеев ставить -тоесть задавать один канал памяти и все, а дисплей и клавиатуру нафиг! - иначе потом головной боли не избежать! Добавление от 28.03.2007 00:28: Xradio |
| 419. Xradio, 28.03.2007 00:30 |
| КРОКОДИЛ 30лет Я так и думал что серьезный, но объясни тогда, как влегкую "перекрутить" кварцевый фильтр. Добавление от 28.03.2007 00:35: КРОКОДИЛ |
| 420. Dikoy, 28.03.2007 00:40 |
| Xradio Если Сишник не владеет ассемблером, Владеет, но не пользуется уже лет 5... Разьве что для вылавливания ляпов компилятора когда счёт идёт на байты ПЗУ. не знает как на самом деле работает камень А вот нафига мне писать sbi, если можно написать portB1.1`; что монопенисуально, но намного понятней? ![]() Про вычисления вообще молчу. А опасения мои были связаны не с миганием самим светодиодом, а настройками портов и всех потрохов. В том же вижне это можно сделать вообще не зная, что такое регистр. В асме не прокатит... |
| 421. Sony_Sony, 28.03.2007 00:46 |
| Xradio Если человека кормить только мягкой, уже пережёванной пищей А почему ТОЛЬКО ? Курс это первые шаги. Добавление от 28.03.2007 00:48: Xradio |
| 422. КРОКОДИЛ, 28.03.2007 00:53 |
| Xradio Я так и думал что серьезный, но объясни тогда, как влегкую "перекрутить" кварцевый фильтр. Добавление от 28.03.2007 00:35: Так зачем же фильтр крутить то? Я же писал -фильтры на базаре любые! - если в синте будет кварц 10,250 то ставим на вторую ПЧ соответственно фильтр на 450кгц и слегонца подстраиваем соответствующие контура, а коллеги и не подстраивают -все равно работает в пределах халам/балам. |
| 423. Sony_Sony, 28.03.2007 00:53 |
| КРОКОДИЛ Sony_Sony ИМХО - проблема в том что читать не желают. Так сделай читабельный сайт Господи ! Но кроме моего мини курса есть масса книг на русском в сободном для скачивания доступе ! линки уже приводили и они есть почти на каждой страничк моего опуса. |
| 424. Xradio, 28.03.2007 00:55 |
| Dikoy нафига мне писать sbi, если можно написать portB1.1`; set bit - понятно даже дураку, а ' - это что? Си требует серьезного периода освоения "птичьих" условностей и символов с запоминанием их. Ассм требует только одного - листочка распечатки команд. При прочих равных. И хорошо что ты знаешь ассм, поэтому ты легко работаешь из высокоуровнего. А представь, что ты не знаешь как на самом деле процессор делит или умножает число на 2. А на самом деле таких много. Скажешь - "и нафиг не надо знать сдвиг байта влево-вправо, написал закорючку - получил результат". А вот теперь и оцени: кто напишет последовательный вывод числа быстрее начинающий ассмщик или начинающий крокодил на Си. |
| 425. Sony_Sony, 28.03.2007 00:55 |
| Dikoy когда счёт идёт на байты ПЗУ. Советую сразу удвоить ресурсы железа. |
| 426. Xradio, 28.03.2007 00:57 |
| Sony_Sony Курс это первые шаги Ну, тогда за то, чтобы сильных орлов тебе вскормить! |
| 427. Sony_Sony, 28.03.2007 00:57 |
| Xradio Dikoy нафига мне писать sbi, если можно написать portB1.1`; set bit - понятно даже дураку, а ' - это что? Наверно имелось ввиду - PORTB.1 = 1; |
| 428. КРОКОДИЛ, 28.03.2007 00:59 |
| Dikoy Не знаю, сколько времени надо на замигивание светодиода на асме с полным отсутствием познаний в программировании, но много Так отож! Ну что так и не прояснилось ничего с регистрами? Я честное слово ничего в этом даташите понять не могу даже с переводчиком! ![]() |
| 429. Sony_Sony, 28.03.2007 01:00 |
| Xradio А представь, что ты не знаешь как на самом деле процессор делит или умножает число на 2. Скажешь - "и нафиг не надо знать сдвиг байта влево-вправо, написал закорючку - получил результат". CVAVR деление или умножение на степень двойки сам сдвигами сделает. Надеюсь и другие компилеры тоже. |
| 430. Xradio, 28.03.2007 01:00 |
| КРОКОДИЛ на вторую ПЧ соответственно фильтр на 450кгц ФСС на контурах? Что это за трансивер ты делаешь? |
| 431. Sony_Sony, 28.03.2007 01:03 |
| КРОКОДИЛ Я честное слово ничего в этом даташите понять не могу даже с переводчиком! Я ж написал как рассчитывать коэффициенты, а как они расположены в 21 битных числах в даташите картинками показано. Что переводить ? |
| 432. КРОКОДИЛ, 28.03.2007 01:04 |
| Sony_Sony Господи ! Но кроме моего мини курса есть масса книг на русском в сободном для скачивания доступе ! линки уже приводили и они есть почти на каждой страничк моего опуса. Так при чем здесь масса книг, -вот и сделай сайт на подобие этих книг, а вообще не понятно зачем было нужно создавать нечитабельный ресурс, - это что какоето изощренное издевательство над новичками??? ![]() |
| 433. Sony_Sony, 28.03.2007 01:05 |
| КРОКОДИЛ Dikoy Не знаю, сколько времени надо на замигивание светодиода на асме с полным отсутствием познаний в программировании, но много Так отож! Дак попробуй пока разобрать пример на Си выше - мигание светодиодами. только не говори ни чего не понял, а пиши ЧТО КОНКРЕТНО не понятно. Си для МК на стр. /05.htm |
| 434. Xradio, 28.03.2007 01:06 |
| Sony_Sony CVAVR деление или умножение на степень двойки сам сдвигами сделает. Еще бы по другому... я о том, что Си не дает программисту некоторых очень важных знаний железа. |
| 435. КРОКОДИЛ, 28.03.2007 01:06 |
| Sony_Sony Я ж написал как рассчитывать коэффициенты, а как они расположены в 21 битных числах в даташите картинками показано. Что переводить ? Я еще не успел глянуть -яж писал у меня интернет гунявый. ![]() |
| 436. Sony_Sony, 28.03.2007 01:12 |
| Xradio я о том, что Си не дает программисту некоторых очень важных знаний железа. Вы не подумайте что я спорю с вами. Я просто свое мнение высказываю. Думаю знания о железе дает даташит. А Си и АСМ это просто язык записи и чтения регистров и операций над числами. |
| 437. КРОКОДИЛ, 28.03.2007 01:14 |
| Sony_Sony а пиши ЧТО КОНКРЕТНО не понятно. Си для МК на стр. /05.htm Ну вопервых в кодевижене нет нужной мне микросхеммы -AT90S1200, во вторых не получается изначально создавать проект не в кодевижене не в ВМлабе не в МПлабе -я тебе уже про это писал. И если хочешь оьяснить то объясняй здесь. Добавление от 28.03.2007 01:18: Xradio |
| 438. Xradio, 28.03.2007 01:28 |
| КРОКОДИЛ а крутить нужно контур второго смесителя Слушай, не обижайся только... Брось ты это дело, пока не наделал глупостей в виде непотребной техники. Почитай лучше литературу, поизучай схемы, попрограммируй чего-нить... Узнай, что такое "контур второго смесителя" на самом деле. А я спать пойду. |
| 439. КРОКОДИЛ, 28.03.2007 01:31 |
| Xradio Я уже проверил, работает. Будут вопросы - задавай. Нашел у себя на диске АВРстудию -3.21 установил. Не получается изначально загнать туда исходник чтобы он откомпилился. Там есть главное - алгоритм, и он на ассемблере. Распечатай описание команд AVR, положи перед глазами и читай текст программы. Нет ничего проще! Мне мнОгое непонятно -что такое побитное ИЛИ, что такое вообще ИЛИ или просто И Добавление от 28.03.2007 01:35: Xradio |
| 440. Sony_Sony, 28.03.2007 01:48 |
| КРОКОДИЛ что такое побитное ИЛИ, что такое вообще ИЛИ или просто И Логические операции и побитные, поразрядные операции на proavr.narod.ru/05.htm |
| 441. Xradio, 28.03.2007 01:48 |
| Открываешь новый проект, называешь как тебе надо, выбираешь проц и симулятор где спрашивают железо для программирования. В появившееся пустое окно уже с именем, которое ввел, копируешь исходник. нажимаешь F7. В пути где создал проект появятся "продукты" творчества. В том исходнике ошибок нет, поэтому получишь сразу добро. Далее войди в меню Debug и запускай пошаговый трассировщик, F11 кажется. Топчи кнопарь и наслаждайся. В окне слева у тебя будут все внутренности камня. Только границу вправа сдвинь, чтобы видеть биты. Туда можешь сам ставить птички если программа требует обслуживание внешнего мира - кнопок например. А в длинных циклах задержек (запаришься топтать) подкорректируй заполнение регистров пересчета (птичками) или вообще, закомментируй эти задержки. Автор проги кстати оставил там закомментированные "технологические возвраты" - сразу на метках. Вот их раскомментируй. В общем посиди, покумекай. - ингтересно - жуть. черт, уже неделю по три часа сплю. |
| 442. Sony_Sony, 28.03.2007 01:50 |
| КРОКОДИЛ не получается изначально создавать проект не в кодевижене Вот пример - proavr.narod.ru/z3.htm На каком КОНКРЕТНО этапе не получается и ЧТО ? |
| 443. Xradio, 28.03.2007 01:56 |
| КРОКОДИЛ А трансиверов я за свою жизнь перекрутил тысячи! Понимаю, но все же серьезные разработчики не допускают несущую не по центру полосы прозрачности фильтра на FM, и не подстраивают туда контур квадратурного детектора... |
| 444. КРОКОДИЛ, 28.03.2007 01:58 |
| Sony_Sony Вот пример - proavr.narod.ru/z3.htm На каком КОНКРЕТНО этапе не получается и ЧТО ? Вернее получается создать пустой проэкт но не получается ничего с ним сделать! Щас пойду попробую сделать как Xradio обьяснил может получится. |
| 445. КРОКОДИЛ, 28.03.2007 02:11 |
| Xradio С самого начала: Допустим мы вместо кварца 10,245 поставили 10,250 -соответственно вторая ПЧ ИЗМЕНИЛАСЬ и стала не 455кгц а 450кгц ,-поэтому вместо фильтра второй пч на 455кгц ставим фильтр купленный на базаре на 450 кгц. А в современных однокристальных приемниках и крутить нечего см. рис. -достаточно только поменять фильтр F3 на 450 килогерц. А я еще меняю катушку L5 тоже на керамический резонатор и подстраиваю конденсатором -так технологичней. К сообщению приложены файлы: 1.gif |
| 446. Xradio, 28.03.2007 02:28 |
| КРОКОДИЛ И точно! вспомнил. Есть такие фильтры на 450 кГц., редкость в продаже, но есть. В некоторых панасониках на 900 мег применялись. Но. 465 - советских времен, 455 - буржуйская масса, и 450 - специально для именно такого случая экономии кварцев в радиомодуле. И всё. Не любые на базаре, как ты говоришь. Есть разумеется и на другие близкие частоты, но на них расчитывать вряд ли стоит. Если вместо контура керамический фазосдвигатель будешь ставить, то его тоже надо на 450 - именно из тех же блочков от панасов, ну или "если так богат ваш базар" кондеем ты его не подстроишь нормально - частотная линейность характеристики испортится и звук будет плохим. |
| 447. КРОКОДИЛ, 28.03.2007 02:51 |
| Xradio кондеем ты его не подстроишь нормально НЕ ставлю именно на 450 килогерц -у нас их действительно много и самое главное никому не нужны, а кондер подбирается по максиуму громкости. Добавление от 28.03.2007 02:54: Блин опять у меня не получается вставить исходник в окно проэкта! Добавление от 28.03.2007 03:10: ПРИ попытке компилировать выдает - File access error Добавление от 28.03.2007 06:05: Xradio |
| 448. Xradio, 28.03.2007 06:15 |
| КРОКОДИЛ Куда уж подробней? Лучше ты опиши последовательность действий и что на экране. Или студентку ли какую (не обязательно электроника) попроси помочь. Добавление от 28.03.2007 06:35: КРОКОДИЛ |
| 449. КРОКОДИЛ, 28.03.2007 06:40 |
| Xradio Или студентку ли какую (не обязательно электроника) попроси помочь. А лучше штук пять студенток! Вопшем создаю проект пустой пототом открваю пустой файл, копирую туда исходник, нажимаю на асеемблер и выскакивает табличка с надписями File access error -может гдето надо было галочку поставить или расширение какое нить? Дело в том что у меня с МПлабом точно такая фигня была -исходник на РИК не компилился -дык я его потом отдельно MPASMом откомпилил. |
| 450. no_name, 28.03.2007 06:41 |
| Нужна помощь, в VMLabe 3.12 не выставляется флаг ICF3 в ETIFR, при этом когда приходит фронт текущее значение таймера 3 заносится в регистры ICR3L и ICR3H. В AVR Studio вроде все работает (если ручками выставить 1 в бит PIND #3 ) В чем может быть дело? ETIFR не только не заполняется (всегда 0х00), но также не хочет читаться, Хотя в АВР студии все читается. Код: lds Temp_1, ETIFR sbrs Temp_1,5 rjmp k0 |
| 451. КРОКОДИЛ, 28.03.2007 06:49 |
| Xradio если только не меняется крутизна (добротность Дык кондер и нужен чтоб снизить немножко добротность, - а то слишкоМ круто получается! ![]() |
| 452. Xradio, 28.03.2007 07:29 |
| КРОКОДИЛ Вопшем создаю проект пустой пототом открваю пустой файл, копирую туда исходник, как ты пустой файл открываешь? При создании нового проекта Студия сама откроет тебе рабочее окно для написания этого проекта. В него и копируешь текст исходника. Добавление от 28.03.2007 07:34: В магазине радиодеталей спроси диск Atmel, возможно дадут, поскольку их бесплатно рассылают всем желающим. Там Студия посвежее. Хотя, для твоего 90S1200, должно быть в самой ранней. Добавление от 28.03.2007 07:45: Отладочная среда MPLAB предназначена для создания и отладки программ для PIC контроллеров фирмы MICROCHIP. |
| 453. Sony_Sony, 28.03.2007 08:42 |
| КРОКОДИЛ File access error "Ошибка доступа к файлу" - какого-то файла не хватает. |
| 454. КРОКОДИЛ, 28.03.2007 09:01 |
| Xradio Отладочная среда MPLAB предназначена для создания и отладки программ для PIC контроллеров фирмы MICROCHIP. Крокодил, ты прикалываешься что ли? Дык а я чего писал? КРОКОДИЛ Дело в том что у меня с МПлабом точно такая фигня была -исходник на РИК не компилился -дык я его потом отдельно MPASMом откомпилил. С добрым утром! ![]() При создании нового проекта Студия сама откроет тебе рабочее окно для написания этого проекта. В него и копируешь текст исходника. В файл именно проекта ничего нельзя скопировать, а в пустое окно ASM файла можно -вот туда я и копировал исходник -он не компилится, тогда я его ADD к проекту -он пристегивается но опять не компилится. Ладно, ночью скачаю самую последнюю версию, а там видно будет. |
| 455. Xradio, 28.03.2007 09:07 |
КРОКОДИЛ РИК - ? PIC -он не компилится как ты это делаешь? |
| 456. КРОКОДИЛ, 28.03.2007 09:21 |
| Xradio как ты это делаешь? Ну клавиша F7 или бульд алль и в проекте "ассембле" нажимаю, - все пошел я спать -впереди тяжёлый трудовой день. ![]() |
| 457. Sony_Sony, 28.03.2007 09:24 |
| КРОКОДИЛ Ладно, ночью скачаю самую последнюю версию Ужас ! 50 или более мегабайт качать когда есть VMLAB 4 Мб и поддерживает 1200. В курсе написано - открой проект пример в ВМЛАВ - проверь что он компилится, а потом подмени ему исходник на свой ! И укажи свой процесор. |
| 458. КРОКОДИЛ, 28.03.2007 09:27 |
Во, точно так и сделаю! Правда я хотел посмотреть как кишки у процессора шевелятся но видно не судьба! ![]() |
| 459. Sony_Sony, 28.03.2007 09:35 |
| КРОКОДИЛ я хотел посмотреть как кишки у процессора шевелятся но видно не судьба! Да ни фига ты курс вАААщене читал !!! ![]() Потому что в САМОМ начале заглавной страницы написано что VMLAB это симулятор для AVR ! Т.е. VMLAB специально для просмотра КИШКОВ !!! Если бы ты прочитал и сделал что в курсе написано - то я уверен - давно бы уже сам писал простые проги. Добавление от 28.03.2007 09:37: Вы самую первую картинку не видели чтоль ??? |
| 460. Dikoy, 28.03.2007 12:28 |
| Xradio и нафиг не надо знать сдвиг байта влево-вправо, написал закорючку - получил результат вот именно Взял понятную ТЕКСТОВУЮ функцию из библиотеки и вывел. Причём все флаги и т.д. проверит функция. На ассме надо писать всё вручную.кто напишет последовательный вывод числа быстрее начинающий ассмщик или начинающий крокодил на Си. Я ассм выучил последним, после паскаля и Си. И никогда себя по этому поводу не чувствовал неполноценным И сейчас меня никто не заставит писать на асме - только если код (кусок кода) где надо сделать быстро и именно то, что надо.Sony_Sony Советую сразу удвоить ресурсы железа. Ага, в серийном девайсе Ещё и микро спейс исполнения поставить, на всякий случай...Наверно имелось ввиду - PORTB.1 = 1; Нэа, имелась ввиду инверсия. CVAVR деление или умножение на степень двойки сам сдвигами сделает. Вот именно! Даже примитивные компиляторы генерят очень неплохой код! И сваять его можно за час с использованием книжки на 40 страниц - шлольного учебника по Си. А сколько на ассме долбить придётся?... ![]() |
| 461. Sony_Sony, 28.03.2007 12:36 |
| Dikoy Ещё и микро спейс исполнения поставить, на всякий случай... Сдуру бывает и лингам ломают ... |
| 462. Dikoy, 28.03.2007 12:43 |
| Xradio я о том, что Си не дает программисту некоторых очень важных знаний железа. А так ли они нужны начинающему? КРОКОДИЛ Может в русских папках дело? Попробуй прект скинуть на диск, в корень, в англоназванную папку, чтоб русского в адресе небыло. |
| 463. КРОКОДИЛ, 28.03.2007 21:45 |
| Sony_Sony В курсе написано - открой проект пример в ВМЛАВ - проверь что он компилится, а потом подмени ему исходник на свой ! И укажи свой процесор. Щас вспомнил -я с самого начала так и делал -возле каждой строчки исходника появляется красный восклицательный знак и в отдельной табличке куча матюков! Исходник для АТ90 на асемблере то написан! Или ВМлаб и асемблер поддерживает? ![]() Добавление от 28.03.2007 21:59: Dikoy |
| 464. Sony_Sony, 28.03.2007 22:06 |
| КРОКОДИЛ возле каждой строчки исходника появляется красный восклицательный знак и в отдельной табличке куча матюков! Наверно ты исходник воткнул в файл проекта .prj Или ВМлаб и асемблер поддерживает? Конечно ассемблер. Добавление от 28.03.2007 22:10: КРОКОДИЛ, |
| 465. Xradio, 28.03.2007 22:21 |
| Ну, прямо подвох какой-то. Очень странно. Обычно люди с таким опытом в электронике обладают недюженной настырностью... И неуспокаиваются, если должно работать, у всех работает, а у него не неработает, пока не победят. |
| 466. Sony_Sony, 28.03.2007 22:28 |
| Xradio Обычно люди с таким опытом в электронике 30 лет ! |
| 467. Xradio, 28.03.2007 23:06 |
Sony_Sony Как и у меня, если отсчет вести от первой самостоятельно спроЭктированной, изготовленной и заработавшей "мигалки". ![]() |
| 468. Dikoy, 28.03.2007 23:59 |
| Sony_Sony Слухай, не помнишь на память, у АТ45 линии SPI в Z встают, когда она не выбрана? Что-то в дш подтверждения найти не могу... ![]() И ещё - у тебя говорилось, что есть под них файловая система. Можешь на мыло слить? Ведь наверняка есть в казиматах ![]() Добавление от 29.03.2007 00:02: А, нашёл наконец: |
| 469. КРОКОДИЛ, 29.03.2007 01:42 |
| Sony_Sony Наверно ты исходник воткнул в файл проекта .prj Xradio Ну, прямо подвох какой-то. Очень странно. Блин, меня сбивало с толку то, что в окне с расширением .НЕХ появляется шаблон .ASMовского файла -непорядок! -как это обьяснить? Потом плюнул на все и выкинул из .НЕХовского окна все кишки, а вместо них вставил свой исходник, нажал на кнопку и сразу все откомпилилось! Правда выскочило несколько матюков -чтото насчет векторов А в исходной папке сразу появился .НЕХфайл с прошивкой для програматора! Сравнил с авторским .НЕХом -все точно совпадает! Правда появился еще загадочный файл LIS -непонятно что с ним делать? А эмуляцию так и несмог включить -сразу не получилось. ![]() |
| 470. Sony_Sony, 29.03.2007 10:40 |
| КРОКОДИЛ А эмуляцию так и несмог включить - сразу не получилось. Ты пойми ! по такому сообщению помочь не возможно ! Пиши конкретно ЧТО не работало, что произошло, что было в окне "меседжис" (шаг 2 пункт 4) ШАГ 3 на заглавной странице курса ты читал ? У тебя это ? Добавление от 29.03.2007 10:45: Dikoy Добавление от 29.03.2007 10:47: КРОКОДИЛ Добавление от 29.03.2007 10:51: ====== |
| 471. КРОКОДИЛ, 29.03.2007 11:00 |
| Sony_Sony Пиши конкретно ЧТО не работало, что произошло, что было в окне "меседжис" (шаг 2 пункт 4) Светофор не загорелся! "Линия 691: ошибка Синтаксиса" ![]() Добавление от 29.03.2007 11:15: Sony_Sony Добавление от 29.03.2007 11:51: Sony_Sony |
| 472. Бэтмэн, 29.03.2007 13:37 |
Сони шутит. Он листинг имеет в виду... |
| 473. Dikoy, 29.03.2007 14:30 |
| Sony_Sony отправил на nm1456t01 Странно... Письмо 2 метра весит, а прикреплённого нет ничего... Ящик не переполнен...Можешь переслать на nm1456t01рамблер.ру? Что-то в последнее время с мейла не доходят вложения... КРОКОДИЛ И что такое ТИНГ?- подробней можно? Си - компиляторы сначала транслируют Си код в ассемблер, а потом уже этот ассм перегоняют в НЕХ. Вот в файле лис сидит тот самый асмовый код. В коде-вижне он так и называется *.asm Причём автоматически закоментирован - открой и увидишь во что на асме превращаются твои Сишные строчки Очень удобно, особенно когда немного знаешь ассм.Добавление от 29.03.2007 14:34: Sony_Sony |
| 474. Sony_Sony, 29.03.2007 17:12 |
| КРОКОДИЛ Sony_Sony Надо добавить к нему окончание ТИНГ. Это подробности процесса ассемблирования. Куда именно добавить? И что такое ТИНГ?- подробней можно? Ты спрашивал что такое LIS - я ответил добавть ТИНГ Неужто не очевидно LIS + ТИНГ будет ЛИСТИНГ. А что он содержит я уже выше объяснил. Добавление от 29.03.2007 17:16: КРОКОДИЛ Добавление от 29.03.2007 17:17: Dikoy |
| 475. Dikoy, 29.03.2007 17:36 |
| Sony_Sony У него исходник на АСМ-е ! Знаю, я как пример сказал ![]() |
| 476. Sony_Sony, 29.03.2007 19:20 |
| Добавил по синтезатору LMX2316 на - av r 1 2 3.n m.r u/ z 1 2.h tm |
| 477. КРОКОДИЛ, 30.03.2007 00:20 |
| Sony_Sony Неужто не очевидно LIS + ТИНГ будет ЛИСТИНГ. Ддак я чё -дешифровальшик чтоли! -Ребусы разгадывать! ![]() Строка 691 это в святом писании ? Или в папке WINDOWS ? Это сообщение появлялось в окошке Messages программы VMLAB при компилировании исходника Сейчас не возникает, а вместо него Interrupt vector at address $0003 it is safer to contain RETI or RJMP, RESET vector must contain a RJMP instructionи светофор не загорается! ![]() Давно бы уж архив со своим проектом прицепил бы !!! На этой конфе кроме рисунков больше ничего не прицепишь. ![]() |
| 478. Xradio, 30.03.2007 01:05 |
| Xradio Ну, прямо подвох какой-то. некто Подвох уже близко. ![]() |
| 479. КРОКОДИЛ, 30.03.2007 01:07 |
| Подвох подкрался незаметно...............Xradio Точно,точно! ![]() |
| 480. Sony_Sony, 30.03.2007 02:00 |
| КРОКОДИЛ На этой конфе кроме рисунков больше ничего не прицепишь. и ни каких идей ??? какие есть сайты для обмена файлами ... |
| 481. КРОКОДИЛ, 30.03.2007 02:44 |
| Sony_Sony какие есть сайты для обмена файлами ... Незнаю где эти сайты, не доводилось ни скем обмениваться, -у меня интернет всего полгода............ |
| 482. Sony_Sony, 30.03.2007 03:02 |
| поиск GOOGLE.com запрос: "выложить файл" slil.ru webfile.ru ======== или открыл бесплатное мыло на mail.ru прицепил архив и отправил письмо самому себе в этот же ящих и выложил мыло и пароль. |
| 483. КРОКОДИЛ, 30.03.2007 03:50 |
| Sony_Sony Вот выложил здесь -http://slil.ru/24157825 |
| 484. Sony_Sony, 30.03.2007 05:46 |
| 1. зачем в проект VMLAB вы вписали 2 исходника АСМ ??? .PROGRAM "my_idea.asm" "sint.asm" Достаточно одного: .PROGRAM "my_idea.asm" 2. VMLAB сообщает * my_idea.asm, line 26: Register already defined by the .DEF directive вот на эти строки .def temp16_h = r30 .def dat_s= r31 =========================== Как перевести ??? "Register already defined by the .DEF directive" ТАК КАК НАПИСАНО НА ПЕРВОЙ странице курса !!! translate.ru дает ВЕЛИКОЛЕПНЫЙ перевод "Регистр, уже определенный в соответствии с .DEF директивой" ======= значит r30 и r31 у вас уже определены (использованы) ранее. Выше этого места нет ни r30 ни r31 - а есть только тескт заголовочного файла: C:\VMLAB\include\1200def.inc Смотрим его текст - в конце .def ZL =r30 .def ZH =r31 значит мы не можем их использовать. Я не силен в АСМе и не знаю как хитро поменять текст проги - так как всего 6 регситров образуют 3 виртуальных 16 битных регистра. В тексте проги не видно ZL ZH и возможно их можно закрыть ; Помогут любители АСМа наверняка. |
| 485. Xradio, 30.03.2007 06:31 |
| В AVR Studio "моя идея. асм" ругается только на путь C:\VMLAB\include\1200def.inc, а sint.asm работает без ошибок. Один и тот же регистр можно продефайнить (обозвать) сколько угодно много раз любыми словами. Студия лишь обнаружит это и оповестит предупреждением, но ошибки не будет. |
| 486. Sony_Sony, 30.03.2007 07:12 |
| VMLAB тоже не ошибку дает а предупреждение. Обозвать можно много раз но данные же могут порушится если разные переменные будут использовать один регистр не контролируемо. Я написал что в проге не видно использования двух зет и возможно можно закомментировать их или оставить как есть. \\\\\\\\\\\\\\\\\\\\ А у меня на Си в CVAVR и VMLAB уже данные передаются в синтезатор. .ru/12.htm И файлы для CVAVR и VMLAB выложил на страничке. Картинка симуляции очень красивая ИМХО http://www.roboforum.ru/files/z12.png (1024x768, 119,3Kb) |
| 487. КРОКОДИЛ, 30.03.2007 09:35 |
| Xradio В AVR Studio "моя идея. Sony_Sony VMLAB тоже не ошибку дает а предупреждение Так симуляция, работает или нет??? ![]() 1. зачем в проект VMLAB вы вписали 2 исходника АСМ ??? Не, я посто два раза подряд проэкт создавал.......кажется...... ![]() Добавление от 30.03.2007 10:08: Xradio Добавление от 30.03.2007 10:45: Sony_Sony |
| 488. Sony_Sony, 30.03.2007 11:08 |
| КРОКОДИЛ Почему на твоем сайте странички перестали сохранятся? Не знаю. Что-то в твоем браузере. Вот архив со страницей 12 - http://webfile.ru/1361784 |
| 489. КРОКОДИЛ, 30.03.2007 11:10 |
| Sony_Sony Вот архив со страницей 12 СПАСИБО! |
| 490. Sony_Sony, 30.03.2007 11:19 |
| Теперь нужно определить чем выбирать частоты и какие. Может многопозиционный вращающийся переключатель ? Добавление от 30.03.2007 11:27: КРОКОДИЛ Добавление от 30.03.2007 16:25: \\\\\\\\\ |
| 491. Dikoy, 30.03.2007 16:43 |
| Sony_Sony Может многопозиционный вращающийся переключатель ? По деньгам одинаково с кнопкой и кучкой светодиодов... ![]() Загрузку сетки сделать с компа, через UART. |
| 492. Sony_Sony, 30.03.2007 16:47 |
| Дык яжышь жду что ЗАКЗЧИК пожелает ! |
| 493. КРОКОДИЛ, 31.03.2007 02:16 |
| Sony_Sony Dikoy Теперь нужно определить чем выбирать частоты и какие. Может многопозиционный вращающийся переключатель ? Дык яжышь жду что ЗАКЗЧИК пожелает ! Не, если для меня то должен быть фиксированный переключатель на 8 положений, а частоты должны заливатся с компа от 144 до 172Мгц. - правда я незнаю кто такой UART А если чисто для радиолюбительского применения то тогда дисплей клавиатура и валкодер. |
| 494. Sony_Sony, 31.03.2007 02:24 |
| КРОКОДИЛ я незнаю кто такой UART Вот такой как описан в /z4.htm и примеры в /z5.htm |
| 495. КРОКОДИЛ, 31.03.2007 03:33 |
| Sony_Sony Возьмите прошивку .hex из студии и симулируйте его в VMLAB. .hex -нехочет сволочь симулироватся, если просто открыть ее в BMlabe то все кнопки получаются неактивными, и светофор не зажигается, а если скопировать в окно .hex то выскакивает куча ругательств, и красных восклицательных знаков. ![]() Добавление от 31.03.2007 03:38: Sony_Sony |
| 496. Sony_Sony, 31.03.2007 09:55 |
| КРОКОДИЛ .hex -нехочет сволочь симулироватся, если просто открыть ее в BMlabe то все кнопки получаются неактивными, и светофор не зажигается Как в файле проекта VMLAB вы включали симуляцию по одному только .hex \\\\\\ Я не знаю что вам СТУДИЯ написала, но на сделаный ей ХЕКс VMLAB говорит тоже что и говорил про исходник : "RESET vector must contain a RJMP instruction" - это ошибка исходника и соответственно прошивки. Поэтому нет готовности к сумуляции. Добавление от 31.03.2007 11:33: ///////////// Добавление от 31.03.2007 11:46: \\\\\\\\\\\\ Добавление от 31.03.2007 12:20: ///////////// |
| 497. КРОКОДИЛ, 31.03.2007 12:34 |
| Sony_Sony Как в файле проекта VMLAB вы включали симуляцию по одному только .hex Ну указание такое же было! -взять .hex из студии всунуть в VMLAB и включить, -не включилось............. Я не знаю что вам СТУДИЯ написала, но на сделаный ей ХЕКс VMLAB говорит тоже что и говорил про исходник : Студия ничего не писала, в ней молча работают что ,hex, что ,asm и еще какойто файл из VMLABовского архива -без всяких возмущений! У меня уже волосы дыбом встают !!! У меня они уже давно дыбом стоят, -с тех пор как начал разбиратся с разными симуляторами ![]() но на сделаный ей ХЕКс VMLAB говорит тоже что и говорил про исходник : "RESET vector must contain a RJMP instruction" - это ошибка исходника и соответственно прошивки. Поэтому нет готовности к сумуляции. Ну так естественно -.HEXы то одинаковые! ![]() Добавление от 31.03.2007 12:43: Sony_Sony Добавление от 31.03.2007 12:46: А есть ли такие программы которые автоматически переводят из Асма в СИ и наоборот? |
| 498. Sony_Sony, 31.03.2007 12:49 |
| Оказывается програ больше размера памяти всего на 1 слово - т.е. на 1 инструкцию. Я подсократил 1 инструкцию в большой паузе и все заработала для at90s1200 Вот проекта под VMLAB - avr1200_lm7001.rar http://slil.ru/24163375 Теперь нужно подключить кнопки по схемме (щас прога крутится бесконечно в опросе кнопок) и по инструкции к проекту и проверить что начнется вывод данных на индикатор - его выводы я вывел в осциллограф VMLAB. Затем добавить в осциллограф сигналы ног управления синтезатором - PD2, PD3, PD4 И посмотреть диаграмки. Когда все будет ОК можно будет править прогу под свои частоты. .................... Офигеть скоко я времени потратил и народ на телесистемах напрег чуток. КРОКОДИЛ, вот так УПОРНО нужно искать баги ! Иначе не получится каменный цветок... Добавление от 31.03.2007 12:50: ///////////// Добавление от 31.03.2007 12:52: КРОКОДИЛ Добавление от 31.03.2007 12:56: КРОКОДИЛ Добавление от 31.03.2007 12:57: КРОКОДИЛ |
| 499. КРОКОДИЛ, 31.03.2007 13:23 |
| Sony_Sony Я подсократил 1 инструкцию в большой паузе и все заработала для at90s1200 А в железе то будет работать? А там есть РУБИЛЬНИК которым включать ??? Не. -не нашёл! БУКВАМИ КАКИМИ ??? Дык незнаю я как его включать, -в этом то и заморчка была с самого начала, -я немог запустить не один эмулятор, а потом по твоему совету стал копировать прямо в окно....... В курсе ясно написано что КОМПИЛЯТОР как раз и преобразует прогу на Си в АСМ который находится в файле ЛИСТИНГЕ ! А наоборот? Я думал что вы хоть какую то книжку про АСМ уже почитали и ЗНАЕТЕ УЖЕ что ; означает - дальше комментарий не влияющий на программу. Да читаю я читаю, -только неполучается одновременно в интернете сидеть, работать, читать книжку и делать это все в железе. |
| 500. Sony_Sony, 31.03.2007 13:25 |
| КРОКОДИЛ Дык незнаю я как его включать как в примере в VMLAB под названием 3rdparty.prj Добавление от 31.03.2007 13:32: КРОКОДИЛ |
| 501. Xradio, 01.04.2007 01:06 |
| Sony_Sony Оказывается програ больше размера памяти всего на 1 слово - т.е. на 1 инструкцию. Очень странно. Исходник р-станции Лён прекрасно работает в АВРстудии версии 4.08 Building project... AVRASM: AVR macro assembler version 1.74 (Dec 16 2003 11:49:32) Copyright (C) 1995-2003 ATMEL Corporation Creating 'C:\Program Files\Atmel\AVR Tools\AvrStudio4\work\1.eep' Creating 'C:\Program Files\Atmel\AVR Tools\AvrStudio4\work\1.hex' Creating 'C:\Program Files\Atmel\AVR Tools\AvrStudio4\work\1.obj' Assembling 'C:\Program Files\Atmel\AVR Tools\AvrStudio4\work\1.asm' Including 'C:\Program Files\Atmel\AVR Tools\AvrAssembler\Appnotes\1200def.inc' C:\Program Files\Atmel\AVR Tools\AvrStudio4\work\1.asm(27) : warning : Register already defined by the .DEF directive C:\Program Files\Atmel\AVR Tools\AvrStudio4\work\1.asm(28) : warning : Register already defined by the .DEF directive Program memory usage: Code : 512 words Constants (dw/db): 0 words Unused : 0 words Total : 512 words Assembly complete with no errors. Короче я очень рад что несколько лет уже использую Си ... Чего и всем рекомендую. - Ты уже нарекомендовал столько и в таких местах, что вряд ли найдется электронщик в интернете, кто не знает твои работы. Однако мизер "спасиб" от благодарных новичков... Но, вот тебе и практический опыт посвещения в АVR Крокодила - опытнейшего инженера, но новичка не то что в программировании, а и в пользовании компьютером. А у тебя уже У меня уже волосы дыбом встают Осваивай асссемблер и учи людей правильно - и тому и другому (Си), коли уж цель такую благородную поставил. |
| 502. КРОКОДИЛ, 01.04.2007 01:20 |
| Sony_Sony и в какое же окно ты скопировал .hex ??? Ну так в окно с названием .НЕХ и скопировал.............. ![]() |
| 503. Sony_Sony, 01.04.2007 01:40 |
| дак нема там такого окна. Добавление от 01.04.2007 01:41: Xradio |
| 504. КРОКОДИЛ, 01.04.2007 01:57 |
| Ну какже нет? -Code. Target file: my_idea.hex Добавление от 01.04.2007 01:59: Xradio Добавление от 01.04.2007 09:09: Xradio |
| 505. Tosha_443, 01.04.2007 09:59 |
| КРОКОДИЛ на ножку RES процессора если RES=RESET, то это супервизор. ![]() |
| 506. Xradio, 01.04.2007 12:21 |
| КРОКОДИЛ чио за микросхемма КР117СП42?? Ты ошибся с названием, это КР1171СП42. Супервайзер. Ищется вот таким образом: http://www.google.ru/search?hl=ru&newwindow=1&am…%81%D0%BA&lr= Добавление от 01.04.2007 12:25: Sony_Sony |
| 507. Dikoy, 01.04.2007 12:43 |
| КРОКОДИЛ правда я незнаю кто такой UART Это СОМ порт, только с ТТЛ уровнями сигналов (а не +-12 вольт, как у СОМ). Вот, посмотри как сделано: http://dikoy44.narod.ru/projects/vkr11.htm Если выкинуть USB преобразователь и чуть переделать программу для ПК как раз и получим то, что тебе нужно - подключение к СОМ порту и заливку сетки частот. |
| 508. КРОКОДИЛ, 01.04.2007 13:00 |
| Xradio Ты ошибся с названием Точно ошибся, Супервайзер А без него можно как нить обойтись - просмотрел подобные схеммы там вместо супервизора стоит светодиод и резистор на землю, -можно ли так сделать? и какие должны быть критерии?Dikoy Если выкинуть USB преобразователь и чуть переделать программу для ПК как раз и получим то, что тебе нужно - подключение к СОМ порту и заливку сетки частот. Это хорошо! Ну как продвигаются дела с прошивкой? - а то Sony_Sony пишет под мегу16, а мне нужно под Атину - она в четыре раза дешевле, а сам я еще долго буду путатся в командах,даташитах,регистрах, и особенно в симуляторах! ![]() |
| 509. Xradio, 01.04.2007 16:03 |
| КРОКОДИЛ вместо супервизора стоит светодиод и резистор на землю Не знаю зачем так делают: От +5 отнимают 2 вольта на светодиоде. Тем самым повышают чувствительность входа Reset к провалам питающего напряжения. Если в твоем устройстве будет нормальный стабилизатор +5 вольт, то достаточно после заливки проги перемкнуть у AVR Reset и +5в. (1 и 20) ноги для 90S1200, 90S2313... У них на борту есть встроенный формирователь сброса при подаче питания. Ведь "висячий" ресет может подвергннутся всяческим наводкам и утечкам по флюсу, что иногда осложняет жизнь. Добавление от 01.04.2007 16:14: КРОКОДИЛ |
| 510. КРОКОДИЛ, 01.04.2007 16:36 |
| Xradio Reset и +5в. (1 и 20) ноги для 90S1200, 90S2313... У них на борту есть встроенный формирователь сброса при подаче питания. Ведь "висячий" ресет может подвергннутся всяческим наводкам и утечкам по флюсу, что иногда осложняет жизнь. Понял, спасибо! ![]() Скачай (возьми у кого-нибудь в Мариуполе) нормальную AVR Studio, Да, -так и сделаю, а то у меня версия 3,21 -взял с диска еще 1999 года -она наверно еще под виндовс 3,1 расчитанна! ![]() |
| 511. Sony_Sony, 01.04.2007 19:06 |
| Xradio Sony_Sony Дак давай проект студии с асмом и хексом в архиве Исходник Крокодила где-то выше, AVR Studio на атмел.ру Зачем людей баламутишь? Я не баламучу а прошу тебя дать то что у тебя работает. Добавление от 01.04.2007 19:07: КРОКОДИЛ |
| 512. Бэтмэн, 02.04.2007 09:13 |
| КРОКОДИЛ вместо супервизора стоит светодиод и резистор на землю, -можно ли так сделать? Sony_Sony: Конечно можно. Поганки тоже можно есть, только отравишся. Обычно ставят резюк (килоомы) в питание и кондёр (микрофарады) в землю. |
| 513. Sony_Sony, 02.04.2007 09:59 |
| Бэтмэн Обычно ставят резюк (килоомы) в питание и кондёр (микрофарады) в землю. А это бесполезно говорить. Я даже рисунок указывал со схемой. А показать это как 100 раз сказать. Все равно не помогает. |
| 514. Pyku_He_oTTyda, 02.04.2007 11:06 |
| меня устраивает 47к на плюс 5 вольт, на землю 0,1 мкф |
| 515. Dikoy, 02.04.2007 13:21 |
| КРОКОДИЛ Ну как продвигаются дела с прошивкой? Когда узнаю алгоритм написание займёт 3 часа А узнавать мне сейчас вобще некогда - все выходные с паялом Так что ждём Sony_Sony, что он там намудрит, потом будем сдирать ![]() А без него можно как нить обойтись По моей ссылке есть детальое описание супервайзера. Обычно ставят RC цепь, резюк 10-50к к плюсу, 0,1 мкФ к земле. Вполне достаточно и программатору не мешает. Но можно и посто на + кинуть. Только программатор ты уже не подключишь ![]() |
| 516. Sony_Sony, 02.04.2007 14:00 |
| Велосипед изобретать по-прежнему модно, только обязательно классический. |
| 517. КРОКОДИЛ, 03.04.2007 03:25 |
| Dikoy Но можно и посто на + кинуть. Только программатор ты уже не подключишь Так и сделал- все равно камень вытаскиваю и сую в програматор. Так что ждём Sony_Sony, что он там намудрит, потом будем сдирать Подождем! А я пока на шестиметровых синтезаторах потренируюсь тоесть на кошечках! ![]() Добавление от 03.04.2007 03:29: Бэтмэн Добавление от 03.04.2007 13:09: Xradio Добавление от 03.04.2007 16:18: Sony_Sony |
| 518. Dikoy, 03.04.2007 23:50 |
| КРОКОДИЛ которые при дальнейшем нажатии кнопок изменяются без всякой логической последовательности. Может ЖК без поддержки русского? |
| 519. КРОКОДИЛ, 04.04.2007 03:48 |
| Dikoy Может ЖК без поддержки русского? Не, там буквенных надписей вообще не должно быть! Вот разработка http://www.cqham.ru/allband.htm, если б дело было в ЖК то при нажатии кнопок ВВЕРХ и ВНИЗ надписи на экране подчинялись бы хоть какойто логике. Сначала думал что камень глючной,- залил второй, -тоже самое, скорее всего глюк гдето в участке программы который отвечает за индикацию. |
| 520. Tahoe, 04.04.2007 06:17 |
| КРОКОДИЛ Если ЖКИ в меру "стандартный", который с 4 или 8 битной шиной, то попробуй для проверки кварц в МК поставить, частотою раза в 2-4 поменьше. Если ЖКИ при этом заработает хотя бы через раз, или раз на десятый, то дело в скорострельности конкретного ЖКИ контроллера. Эта хохма известная. ![]() |
| 521. Pyku_He_oTTyda, 04.04.2007 07:24 |
| может в фузах ошиблись, и МК работает не от кварца, а от внутреннего RC по умолчанию. З.Ы. правда не видел схемы и не знаю что за камень |
| 522. Sony_Sony, 04.04.2007 09:11 |
| КРОКОДИЛ Чтойто не работает твоя программа ваабче! Это не моя программа !!! Это исходник подправленый чтоб запустить в симуляторе. Я не писал что проверил ее работу. Я написал выше что при запуске она крутится в цикле ожидания нажатия кнопок. Кнопки в симуляторе я не подключал. Добавление от 04.04.2007 09:14: Dikoy |
| 523. Xradio, 04.04.2007 11:07 |
| КРОКОДИЛ Сейчас включил один из синтезаторов в который сунул камень с авторской прошивкой, -при попытке нажимать кнопки на дисплее отображается непонятные букво цифровые надписи "Один из синтезаторов" ? Программа контроллера пишется конкретно под какую-либо принципиальную схему. Здесь важно всё и до "мелочей" - тип индикатора. Наверное придется тебе опубликовать схему и прошивку её микроконтроллера, если сам Не ХОЧЕШЬ (уверен) разобраться. P.S. я добрался до дома. Но обещанный исходник для синтезатора на AVR, думаю, бесполезно тебе давать. Всё одно - лишь усугубит. Все основные методы управления сериал-синтезатором и прочие кнопки-х..пки уже здесь изложены с помощью автора твоего исходника и Sony-sony. "Терпение и труд всё перетрут!" |
| 524. КРОКОДИЛ, 04.04.2007 11:57 |
| Tahoe Если ЖКИ в меру "стандартный", Разобрался с дисплем -все заработал. ![]() Sony_Sony Возможно пауза которую я закоментировал (отключил) для отладки используется в тайминге LCD Да, с этой программой что ты дал при включении синтезатора на дисплее ничего не отображается кроме часов Отображение информации начинается только после нажатия кнопок, а с авторской прошивкой начинает показывать сразу, -но все равно даже авторская программа какаято глючная.Добавление от 04.04.2007 12:06: Xradio Добавление от 04.04.2007 12:17: Сейчас столкнулся с тем что при шаге 5кгц просто физически невозможно выставить верхнюю и нижнюю границы диапазона с нуля, потому как с таким мелким шагом всю ночь сидел и нажимал кнопки, хотел уже кота Барсика приспособить к этому делу! Добавление от 04.04.2007 14:25: Блин, ну никак не удается выставить вменяемые границы, -все время сбиваются! |
| 525. Xradio, 04.04.2007 16:49 |
| КРОКОДИЛ Сейчас столкнулся с тем что при шаге 5кгц просто физически невозможно выставить верхнюю и нижнюю границы диапазона с нуля, потому как с таким мелким шагом всю ночь сидел и нажимал кнопки, хотел уже кота Барсика приспособить к этому делу! И все равно после установки границ они тут же сбились и верхняя оказалась по частоте ниже чем нижняя. Тоесть опять нужно несколько часов подряд щелкать кнопками и неизвестно чем это закончится Попробовал с компа границы записать в еепром- получилось, но опять после нескольких нажатий кнопок все сбилось - Ну, что тебе ответить? На ум приходит только одно: - Делай сам. ВСЁ! Делай сам... И да воздастся тебе по трудам. И не манна чЮдесная, а твёрдая ПОЧВА. ![]() |
| 526. КРОКОДИЛ, 04.04.2007 18:24 |
| Xradio И да воздастся тебе по трудам. И не манна чЮдесная, а твёрдая ПОЧВА. Пааанятно! Добавление от 04.04.2007 18:29: Tahoe |
| 527. Sony_Sony, 04.04.2007 19:41 |
| Надо смотреть не используется ли НУЛЕВАЯ ячейка eeprom. Запись в eeprom занимает примерно 8600 тактов процессора. |
| 528. КРОКОДИЛ, 05.04.2007 05:25 |
| Sony_Sony Надо смотреть не используется ли НУЛЕВАЯ ячейка eeprom. А ,если используется, то что? ![]() |
| 529. Sony_Sony, 05.04.2007 08:36 |
| Не использовать ее - как рекомендует производитель и делает CVAVR. |
| 530. КРОКОДИЛ, 05.04.2007 19:34 |
| Sony_Sony А как опредилить используется нулевая ячейка или нет? Перевел даташит на AT90S1200 но так ничего и не понял с этими ячейками ![]() |
| 531. Sony_Sony, 05.04.2007 20:05 |
| В симуляторе посмотреть. Или разобраться в тексте программы. |
| 532. КРОКОДИЛ, 05.04.2007 22:23 |
| В тексте доконца разобраттся неудалось, попробую на симуляторе. Добавление от 06.04.2007 03:28: Sony_Sony |
| 533. Sony_Sony, 06.04.2007 03:30 |
| Ты бы название симулятора писал ! Внеси в симуляторе в 0 ячейку какое либо число и смотри не изменится ли онопрограммой. |
| 534. КРОКОДИЛ, 06.04.2007 05:39 |
| Sony_Sony Ты бы название симулятора писал ! VMLAB, а ячейки смотрел в окошке EEPROM. Внеси в симуляторе в 0 ячейку какое либо число и смотри не изменится ли онопрограммой. Обнулил все ячейки и запустил симуляцию, ничего не меняется. |
| 535. Sony_Sony, 06.04.2007 08:34 |
| Дак ты кнопки подключил в симуляторе ? Я ж писал что иначе прога крутится в цикле опроса кнопок. |
| 536. КРОКОДИЛ, 06.04.2007 16:11 |
Я незнаю как их включать ![]() |
| 537. Sony_Sony, 06.04.2007 16:15 |
| Пример подключения кнопок в VMLAB на странице курса /03.htm в файлах для симуляции и изучения механизма прерываний. |
| 538. КРОКОДИЛ, 06.04.2007 16:32 |
| Sony_Sony Понял, -ночью посмотрю. |
| 539. Sony_Sony, 06.04.2007 17:08 |
| Советую на бумажке написать расположение кнопок в VMLAB чтоб не путаться при отладке. |
| 540. Dikoy, 07.04.2007 01:08 |
| Sony_Sony У меня к тебе вопрос, как к эксперту по CVAVR ![]() Вот в ДШ к меге128 (как и остальных АВР) описан модуль TWI, SCL = PD0, SDA = PD1. Даже в самой ДШ описаны биты порта D, которыми подтяжки дёргать сподручнее и в какой последовательности записывать эти самые биты. Однако CVAVR на вкладке I2C позволяет установить любую лапу любого порта под линии SCL и SDA. Почему так? В чём фишка? ![]() Мне, собственно, надо подцепить DS1621 к 128 меге, но вот уж очень нужны мне INT0 и INT1! А они, гады, как раз с SCL/SDA совмещены... Вот и думаю, как бы мне термометр с этих лап убрать, чтобы и им пользоваться, и прерываниями. Причём - раздельно ![]() Добавление от 07.04.2007 01:16: А, кажись понял - вкладка I2C генерит программный I2C, не имеющий ничего общего с аппаратным TWI |
| 541. Sony_Sony, 07.04.2007 04:24 |
| Dikoy CVAVR на вкладке I2C позволяет установить любую лапу любого порта под линии SCL и SDA. Почему так? В чём фишка? Было несколько стр. назад Dikoy понял - вкладка I2C генерит программный I2C, не имеющий ничего общего с аппаратным TWI Точно. Аппаратный TWI - в мастере CVAVR это вкладка "2 wire". опыт использования програмного I2C? Насколько он шустро работает? Грузит ли процессор? Насколько чётко работает? Использовал в 2004. "Работает как часы". Есть в примерах CVAVR для LM75 по-моему. Програмный конечно грузит процессор "по-полной". Проблема одна - частота всего 40 КГц получается. Я находил в листинге АСМ эту "дебильную" паузу код:и сам ее убирал код: Потом асемблил уже АСМ. не удобно. Частоту на клоке мерил как раз в VMLAB. Вот архив с моим примером и логом: slil.ru/24197332 Я i2c больше не использовал для памяти так как заюзал at45db161 - это в 60 раз больше памяти за те же деньги и быстрей - пример в задаче 7. |
| 542. no_name, 07.04.2007 08:14 |
| Sony_Sony Не использовать ее - как рекомендует производитель и делает CVAVR. Я не встречал, таких рекомендаций, не могли бы вы меня ткнуть в даташит, а то как то странно подобная рекомендация выглядит. Спасибо |
| 543. Sony_Sony, 07.04.2007 10:49 |
| Откройте даташит at90s1200 и смотрите в конце раздел "ошибки" - errata |
| 544. Dikoy, 07.04.2007 13:29 |
| Sony_Sony Аппаратный TWI - в мастере CVAVR это вкладка "2 wire". А родные примеры с DS1621 и т.д. работают через аппаратный TWI? Просто выбор из настроек есть только на вкладке I2C... Я находил в листинге АСМ эту "дебильную" паузу и сам ее убирал Работало? Я i2c больше не использовал для памяти Мне не для памяти а для DS1621/1624. Память у меня как раз db161. Висит на одной линии с АЦП ![]() Зы: ещё глупый вопрос: INT-ы друг на дружку никак не влияют? Вот включил я, например, INT4, а остальные выключены. Прерывание у меня будет работать только по PE4, а изменения на остальных портах с INT пофиг? ![]() Это я вычитал про старшинство прерываний... |
| 545. Sony_Sony, 07.04.2007 14:02 |
| Dikoy А родные примеры с DS1621 и т.д. работают через аппаратный TWI? Просто выбор из настроек есть только на вкладке I2C... Если есть возможность выбора на какие ноги цеплять - значит это программный i2c. TWI выеден на конкретные ноги МК. Dikoy Sony_Sony эту "дебильную" паузу и сам ее убирал Работало? Работало быстро. Но ИМХО так не удобно делать - каджый раз править АСМ. Не пойму какого черта в мастере нет опции установки частоты i2c. Я тогда, еще года 2 назад, писал автору про это. Dikoy INT-ы друг на дружку никак не влияют? Вот включил я, например, INT4, а остальные выключены. Прерывание у меня будет работать только по PE4, а изменения на остальных портах с INT пофиг? Это я вычитал про старшинство прерываний... Да пофиг. Очень советую прочитать короткий мой опус про прерывания в Меге на стр. /03.htm Считаю что объяснено хорошо и точно. Добавление от 07.04.2007 14:03: Dikoy |
| 546. no_name, 07.04.2007 18:03 |
| Sony_Sony Откройте даташит at90s1200 и смотрите в конце раздел "ошибки" - errata Я почему то подумал, что это рекомендация для всех АВР-ов у меня под рукой два даташита один для М8, другой для М162 там вроде такого нет. |
| 547. Sony_Sony, 07.04.2007 18:08 |
| Пасхальный подарок от Ридико Л.И. - TTF шрифт для LCD telesys.ru/wwwboards/mcontrol/1638/messages/58804.shtml Как использовать LCD можно прочитать на странице - proavr.narod.ru/z5.htm ================ no_name Я почему то подумал, что это рекомендация для всех АВР-ов Я рекомендую для всех AVR не использовать 0 ячейку EEPROM. Так делает компилятор CVAVR, возможно и другие. |
| 548. no_name, 07.04.2007 19:25 |
| Sony_Sony Я рекомендую для всех AVR не использовать 0 ячейку EEPROM. Так делает компилятор CVAVR, возможно и другие. Почему? Личные предпочтения? У меня лежит уже готовая программа в которой пишется в 0 ячейку. Возвращаться не охота, но вы посеяли зерно сомненья. ![]() |
| 549. Pyku_He_oTTyda, 07.04.2007 21:44 |
| Sony_Sony а как собственно подключить в mege8 потенциометр к ADC6 и 7. Корпус TQFP cоответственно |
| 550. Sony_Sony, 07.04.2007 22:03 |
| no_name вы посеяли зерно сомненья. Всё подвергай сомнению ! ![]() Pyku_He_oTTyda как собственно подключить в mege8 потенциометр к ADC6 и 7. Извини я не понял... наверно 2 потенциометра (переменника) раз 2 ноги АЦП ? Тогда их на землю и на AREF а "движки" к PC6 и PC7 (исправил на порт_С). |
| 551. Pyku_He_oTTyda, 07.04.2007 22:12 |
| опечатка, к любому. Возьмем конкретно - к ACD7. концы потенциометра понятно куда, как обозначить подключение ползунка? З.Ы, нет в меге 8 порта А. эти два канала выведены отдельно, вот собственно и возник вопрос |
| 552. Sony_Sony, 07.04.2007 22:35 |
| Pyku_He_oTTyda нет в меге 8 порта А Ну пускай порт_С Pyku_He_oTTyda как обозначить подключение ползунка? Чето я совсем отупел. Что значит обозначить ? в VMLAB чтоль ??? тогда пример в папке: C:\VMLAB\tutorial\STEP05.PRJ Вот строка: Vslider SGEN VSS SLIDER_1(0 5) Подробней в Help. Или я не о том опять ? |
| 553. Pyku_He_oTTyda, 07.04.2007 22:44 |
| не о том... в портС входят АДС0...АДС5. АДС6 и АДС7 выведены отдельными ногами |
| 554. Sony_Sony, 07.04.2007 22:45 |
| Да я уже посмотрел рисунок в даташите. Какая вам разница как раскидан порт. Подключайте куда надо да и всё. |
| 555. Dikoy, 08.04.2007 00:55 |
| Sony_Sony Очень советую прочитать короткий мой опус про прерывания в Меге на стр. /03.htm Ещё под Новый Год читал, когда круиз-контроль мастерил. Но одно дело 2313, и совсем другое 128 мега... В ней уж больно много всего и это всё так хитро завязано... ![]() |
| 556. Tahoe, 08.04.2007 01:50 |
| Dikoy В ней уж больно много всего и это всё так хитро завязано... Фигня. Ты наверное не копал Атмеловский ARM, с его AIC. Хотя и там, в ощем-то, вполне можно разобраться. ![]() |
| 557. Pyku_He_oTTyda, 08.04.2007 08:33 |
цитата: проехали... теперь я не удивляюсь, почему столько страниц в этой теме. Не проще сказать: - Я не знаю, как подключить, чем писать сообщения вокруг да около? Вот я например незнаю, и не стесняюсь спросить |
| 558. Sony_Sony, 08.04.2007 09:58 |
| А почему нельзя подключить к ногам PC6 PC7 ? Вы объясните хоть. Добавление от 08.04.2007 09:59: Pyku_He_oTTyda |
| 559. Pyku_He_oTTyda, 08.04.2007 10:56 |
| Потому что PC6 - RESET, PC7 - нет как таковой. АДС6 и АДС7 выведены на отдельные ноги, как из прописать куда назначить движок слайдера, ума не приложу |
| 560. Sony_Sony, 08.04.2007 11:09 |
| Вот сгенерировал новый проект в VMLAB и в файле проекта перечисляются все точки МК к кторым можно подключать что либо. ; Micro nodes: RESET, AREF, PB0-PB7, PC0-PC6, PD0-PD7, ACO, TIM1OVF, ADC6, ADC7 ; Define here the hardware around the micro ; ------------------------------------------------------------ т.е. выводы так и названы ADC6 и ADC7 Добавление от 08.04.2007 11:17: Вот строка для подключения движка первого переменника в панели управления к ADC6 : |
| 561. КРОКОДИЛ, 09.04.2007 03:53 |
| Sony_Sony А можно ли что нибудь в программе написать чтоб биты защиты включались? |
| 562. Sony_Sony, 09.04.2007 07:25 |
| Для AVR по-моему нет. Защиту фьюзами нужно ставить в програматоре. |
| 563. Pyku_He_oTTyda, 09.04.2007 08:41 |
| Sony_Sony Спасибо! Дома попробую. Да, действительно работает) |
| 564. Xradio, 10.04.2007 21:00 |
| Sony_Sony Не пойму какого черта в мастере нет опции установки частоты i2c. Я тогда, еще года 2 назад, писал автору про это. И что ответил автор i2C? ![]() Протокол подразумевает стык различных, и самых разнородных, и2ц совместимых. Да и адресация предполагается только внешняя у большинства простеньких (это к странному вопросу ДикОго) Аппаратный модуль i2C в Мегах хорош, дюже красиво нарисован, но мне быстрее получилось плюнуть на него и сделать i2C программно по даташиту дивайса памяти |
| 565. КРОКОДИЛ, 14.04.2007 02:36 |
| Sony_Sony Можешь толком расказать как переделать программу с AT2313 на ат AT90S1200??? код: |
| 566. Dikoy, 14.04.2007 03:43 |
| КРОКОДИЛ Ну ты завернул! Пол кода перекраивать надо для того, чтобы переделать его на более устаревший контроллер! ![]() Давно бы уже 2313 купил. Их же как грязи!!! |
| 567. КРОКОДИЛ, 15.04.2007 02:12 |
| Dikoy Давно бы уже 2313 купил. Их же как грязи!!! У нас их нет! А из Киева долго ждать,- AT90S1200 я ждал целых три недели и сейчас кроме них и PICов ничего нет в наличии, а эта схемка с исходником попалась только вчера. Конечно закажу 2313,-просто нетерпится чтото конкретное сделать ![]() |
| 568. Sony_Sony, 15.04.2007 09:39 |
| КРОКОДИЛ Конечно закажу 2313 Опять раритеты заказываешь снятые с производства ! Если у тебя почта существует ты можешь заказать из киева что угодно. МЕГА8 это минимум. |
| 569. КРОКОДИЛ, 16.04.2007 05:03 |
| Sony_Sony МЕГА8 это минимум Дык на МЕГА8 прошивка не подойтет все равно ![]() Опять раритеты заказываешь снятые с производства Так какие в разработках даны такие и заказываю. Сегодня по счастливому стечению обстоятельств удалось купить на базаре несколько штук ATTINY2313-20SI, к сожалению в ДИП корпусе найти не удалось А прошивку расчитанную на AT90S2313 можно залить в ATTINY2313-20SI? или тоже нужно переписывать? И как их приспособить на стандартную макетку? ![]() |
| 570. Sony_Sony, 16.04.2007 08:58 |
| Где линк на проект откуда исходник ? КРОКОДИЛ как их приспособить на стандартную макетку? Если опыт 30 лет то думаю плату сделать и припаять не проблема. Плату удобно делать так - proavr.narod.ru/06.htm А прошивку расчитанную на AT90S2313 можно залить в ATTINY2313-20SI? или тоже нужно переписывать? Надо проверить по апноуту совместимости "AVR091: Replacing AT90S2313 by ATtiny2313 (11 pages, revision A, updated 10/03) This application note is a guide to help current AT90S2313 users convert existing designs to ATtiny2313." Обычно подходят проги либо с минимумом переделок. Апноуты там внизу: proavr.narod.ru/07.htm удалось купить на базаре несколько штук ATTINY2313-20SI Будь внимателен в программировании ! там ошибка в дш по частоте с завода и т.п. - подробно описано на стр. proavr.narod.ru/07.htm |
| 571. КРОКОДИЛ, 17.04.2007 03:44 |
| Sony_Sony Где линк на проект откуда исходник ? К сожалению это проект из нашего Украинского журнала "Радиохобби" 5номер за 2006 год -я сначала нашел на ихнем сервере архив с исходником и хексом а потом так и не смог найти в инете самого журнала, похоже они начисто отсутствуют в сети Пришлось просить в эфире радиолюбителя из соседнего городка чтобы он распечатал и выслал мне странички с синтезатором.Если опыт 30 лет то думаю плату сделать и припаять не проблема. Не доводилось мне раньше микросхемы в разных корпусах на макетке стыковать, а разрабатывать и делать платы до того как девайс пройдет испытания тоже не очень хочется. Плату удобно делать так - proavr.narod.ru/06.htm Щас посмотрю. Надо проверить по апноуту совместимости Попробую разобратся, хотя врядли На какомто форуме читал что нужно включить какойто мастер совместимости и тогда ATTINY2313 будет думать что она AT90S1200! Только непонятно где эту совместимость включать??? ![]() Добавление от 17.04.2007 05:32: Sony_Sony Добавление от 17.04.2007 05:37: Sony_Sony |
| 572. Sony_Sony, 17.04.2007 07:22 |
| КРОКОДИЛ и тогда ATTINY2313 будет думать что она AT90S1200! Посмотрел апноут и не совсем понял почему в таблице 3 для AT90S1200 ножки ЗАБУДЬ наконец AT90S1200 !!! Тебе совместимость с AT90S2313 НУЖНА !!! |
| 573. КРОКОДИЛ, 18.04.2007 01:55 |
| Sony_Sony ЗАБУДЬ наконец AT90S1200 !!! Ой извиняюсь -просто перепутал навание микросхемы, вобщем вопрос звучит так:.............и тогда ATTINY2313 будет думать что она AT90S2313!............. Посмотрел апноут и не совсем понял почему в таблице 3 для AT90S2313 ножки c 12 по 19 не подписаны? В этой схемме синтезатора ножки 14,15,16,17,18,19 используются для вывода на дисплей МТ-10Т7, а паралельно к ножкам 16,17,18,19 еще подключенна и клавиатура из четырех кнопок на минусовой провод. |
| 574. Sony_Sony, 18.04.2007 12:04 |
| Исходник для AT90S2313 положи на slil.ru Добавление от 18.04.2007 12:04: и схему ! |
| 575. КРОКОДИЛ, 19.04.2007 02:39 |
| Sony_Sony Исходник для AT90S2313 положи на slil.ru Положил -http://slil.ru/24257810 и схему ! А схему положить не могу -так как не имею ни сканера не цифрового фотоапарата, да и пропечатанна она плохо, -журналы Радиохобби вообще страдают невнятным изображением. Вобщем попытаюсь расказать на пальцах: ножка2-pd0 процесора идет на ножку 5-data синетезатора lm7001, ножка3-pd1 на 4-CL, вывод6-pd2 на 3-СЕ, ножка19-pb7 идет на 7-db0 ножку индикатора MT10T7, 18-рb6 на 6-db1, 17-pb5 на 5-db2, 16-pb4 на 4-db3, 15-pb3 на3-WR, 14-pb2 на 1-A0, еще паралельно ножкам 16,17,18,19 подключены кнопки skanout, next, dn, up. К 12-pb0 подходит 0/TX, K 11-PD6 через транзистор +5в/stopskan, K 9-PD5 идет QRX+5/TX. |
| 576. Sony_Sony, 19.04.2007 07:51 |
| КРОКОДИЛ попытаюсь расказать на пальцах: Это значит "Схема в формате VMLAB" ![]() Добавление от 19.04.2007 08:19: КРОКОДИЛ |
| 577. Angelo, 19.04.2007 20:33 |
| Маленький вопросик, какое будет реальное разрешение АЦП в меге48/88 при требуемой частоте выбрки сигнала 50КГц ??? |
| 578. slog2, 19.04.2007 20:53 |
| Angelo RTFM (FM - это http://www.atmel.com/dyn/resources/prod_documents/doc2545.pdf) |
| 579. Xradio, 19.04.2007 20:59 |
| Angelo Поразрядно-кодирующий: Сколько компенсирующих гирь сможет поставить продавец на весы обладая определенным фактором быстродействия? Интегрирующий: Сколько воды успеет налить и вычерпать водовоз за определенное рабочее время? Параллельного кодирования: Сколько "в лоб" солдат потребуется для штурма? АЦП на борту микроконтроллера: Читал-читал pdf... и скоко разрядов в АЦП - так и не понял... ![]() Ещ` есть метод статистического аддитивного умножения разрядности: радикально теряем время - получаем повышение точности (разрядности). |
| 580. Angelo, 19.04.2007 21:13 |
| стока букв, нет бы по делу 2 цифры сразу написать.... |
| 581. Dikoy, 19.04.2007 23:19 |
| Angelo Зависит от ИОНа. Реально 8 бит держит без дрожания. 10 могут и подрагивать. Вообще, в 48/88 АЦП заметно лучше, чем в 8/16, это личный опыт. |
| 582. Angelo, 19.04.2007 23:39 |
| Dikoy Спасибо!, 7..8 бит на 50К выборок вполне достаточно, но строчка в даташите, в таблице параметров АЦП:"Input Bandwidth 38.5 kHz" заставила начать копать в пиках.... |
| 583. Xradio, 20.04.2007 00:46 |
| Angelo :..."Input Bandwidth 38.5 kHz" заставила начать копать в пиках.... Это полезно... "копать". Иначе никак не посмешит: Dikoy Реально 8 бит держит без дрожания. 10 могут и подрагивать. |
| 584. КРОКОДИЛ, 20.04.2007 03:02 |
| Sony_Sony Во всяком случае в GOOGLE.com не заглядывал. Заглядывал.....просто просмотреть все до конца что нарыл гуголь нехватило трафика , а еще был на какомто архиве где есть абсолютно все журналы.....кроме радиохобби ![]() http://rapidshare.com/files/1950347/___05.2006.rar (5310 KB). Журналы Радиохобби - МНОГО - скачать: http://www.nowa.cc/showthread.php?t=30214 Спасибо! ![]() Это значит "Схема в формате VMLAB" Так а что всетаки делать с прошивкой? И еще вопрос -на твоем сайте описан програматор типа пять проводков только не под ЛПТ порт а под СОМ порт -интересно он работает из под Кодэвижена или нет??? Да еще читал на твоем сайте про програмирование фьюзов но так ничего и не понял, -незнаю или я такой тупой или ты так заумно пишешь, -ты пойми что для человека который никогда с этим делом не сталкивался очень трудно понять что значат незнакомые символы Вобщем я не смог разобратся где в програматоре кодэвижена нужно поставить галочки на фьюзах чтоб запрограмировать ATtiny2313 под работу с кварцем? И еще не понятно частоту в програматоре нужно выставлять ту с которой будет работать каменнь -тоесть 7,2мгц? или какуюто другую? |
| 585. Sony_Sony, 20.04.2007 10:11 |
| КРОКОДИЛ И еще не понятно частоту в програматоре нужно выставлять ту с которой будет работать каменнь -тоесть 7,2мгц? или какуюто другую? В програматоре своя частота. Просто фьюзы нужно установить так что МК мог работать с той частотой какая тебе нужна и с кварцем например. Я как могу написал там. Посмотри в нигах тогда. Линк на библиотеку прямо в начале заглавной страницы курса теперь есть. Прошивку нужно проверить по апноуту AVR091 прямо по пунктам различий МК там перечисленным. Пока времени нет у меня. Добавление от 20.04.2007 10:15: КРОКОДИЛ Добавление от 20.04.2007 10:36: STC |
| 586. КРОКОДИЛ, 21.04.2007 02:34 |
| Sony_Sony PonyProg с таким работает. В меню PonyProg нет ATTINY2313 , а есть только в CVAVR.На стр. 07 картинка имеется ведь. Вот там галочки ставятся. Там не совсем понятно . Откликнулся автор синтезатора и прислал полностью переделанную под ATTINY2313 прграмму с подробными комментариями и даже с фотографией програматора -тоесть с расположением галочек на фузах -вот теперь можно разбиратся что к чему! ![]() Добавление от 21.04.2007 03:03: Sony_Sony |
| 587. Xradio, 21.04.2007 09:49 |
| КРОКОДИЛ В меню PonyProg нет ATTINY2313 Version 2.06f Beta Mar 5 2005 В этой есть. |
| 588. Sony_Sony, 21.04.2007 10:40 |
| КРОКОДИЛ Откликнулся автор синтезатора Это самое верное ! КРОКОДИЛ В меню PonyProg нет ATTINY2313 Используй в работе свежие версии программ ! Но и старые не удаляй из СЕМЕЙНОГО архива - могут пригодится. |
| 589. КРОКОДИЛ, 22.04.2007 02:04 |
| Xradio Version 2.06f Beta Mar 5 2005 В этой есть. Спасибо! Sony_SonyВот смотри как автор доходчиво обьяснил на счет нулевых ячеек: цитата:Буквально два слова и все понятно! ![]() |
| 590. Sony_Sony, 22.04.2007 11:20 |
| Здорово ! Сразу видно - АВТОР ! |
| 591. КРОКОДИЛ, 25.04.2007 02:11 |
| Sony_Sony А когда будет продолжение 12 страницы??? |
| 592. Sony_Sony, 25.04.2007 02:39 |
хз ![]() |
| 593. КРОКОДИЛ, 25.04.2007 03:16 |
Суперконкретный ответ! ![]() |
| 594. КРОКОДИЛ, 02.05.2007 15:16 |
| Sony_Sony А почему при компиляции твоих проектов с 12 страницы не появляется файл листинга??? ![]() |
| 595. Sony_Sony, 02.05.2007 16:55 |
| Компиляция в CVAVR полагаю... ИМХО - не могёт такого быть. По-моему в свойствах проекта даже при желании нельзя отключить генерацию листинга. Пошукайте файлы .lst и .asm |
| 596. КРОКОДИЛ, 03.05.2007 06:10 |
| Sony_Sony Компиляция в CVAVR полагаю... Не, я на VMLABе компиляю.......... Пошукайте файлы .lst и .asm A нэту! -Я хотел твою программу для LMX2316 на асемблере прожевать -на нем я хоть чучуть понимаю, но не нашел листинга! ![]() |
| 597. Sony_Sony, 03.05.2007 06:19 |
| Мистика ! |
| 598. КРОКОДИЛ, 03.05.2007 06:23 |
| Sony_Sony Мистика ! Ну скачай со своего сайта последний архив и прокомпиляй -увидишь. |
| 599. Sony_Sony, 03.05.2007 06:25 |
| Ну вот тебе пример из задачи откомпиленый с листингом - http://slil.ru/24323040 Поставь CVAVR заново. Листинг ВСЕГДА он делает если компилирует. Даже когда компиляция неудачна и с ошибками. В листинге ошибки и смотрят. Добавление от 03.05.2007 06:27: КРОКОДИЛ |
| 600. КРОКОДИЛ, 03.05.2007 06:41 |
| Sony_Sony Ну вот тебе пример из задачи откомпиленый с листингом - http://slil.ru/24323040 Ну это уже совсем другое дело! ![]() От меня зависит лишь содержание файла исходника .с Даже если там оставить main() только - все равно появится листинг. Не ну в архиве на 12 странице листинга нет и при компиляции он не появляется! |
| 601. Sony_Sony, 03.05.2007 12:04 |
| Ты читать умеешь ??? Я разве писал что в архиве задачи есть листинг ??? Листинг делает компилятор. Причем разные версии могут делать разный листинг. |
| 602. КРОКОДИЛ, 04.05.2007 03:58 |
| Sony_Sony Я разве писал что в архиве задачи есть листинг ??? Так а почему он при компиляции этой задачи не появляетя??? Тоесть отрываешь проэкт, нажимаещь компиляцию,- компилируется а листинга нет! |
| 603. Sony_Sony, 04.05.2007 05:00 |
| Я не знаю. Я выше писал - попробуйте покомпилить примеры CVAVR. |
| 604. КРОКОДИЛ, 04.05.2007 05:31 |
| Sony_Sony Я выше писал - попробуйте покомпилить примеры CVAVR. Будет время попробую. Дело в том что при компиляции дугих проэктов листинг появляется всегда, а при компиляции этого нет! ![]() |
| 605. Sony_Sony, 04.05.2007 10:16 |
| Невезет так не везет ! У меня появляется. Попроси третье лицо протестировать. |
| 606. КРОКОДИЛ, 04.05.2007 17:19 |
| Sony_Sony Попроси третье лицо протестировать. Да ладно -вопрос не принципиальный, теперь у меня есть листинг с асемблером -буду разбиратся. Еще раз перечитал на твоем сайте про логическое И и ИЛИ - опять ничего не понял -можешь толком описать вплоть до каждой единички и нолика -так чтоб было понятно. На титульной странице ты пишешь: "Чайникам от чайника" Но слово "чайник" подразумевает абсолютное незнание предмета, а твои обяснения рулят как "Кофейникам от самовара" ![]() |
| 607. Sony_Sony, 04.05.2007 17:44 |
| У меня в курсе на стр. proavr.narod.ru/05.htm написано: "ИЛИ" - только 0 и 0 дают 0 "И" - только 1 и 1 дают 1 ========= ЧТО НЕ ПОНЯТНО ??? ========== Пиши НА БУМАГЕ два байта в двоичном виде (Таблица "Различные представления числа" там же /05.htm) друг на другом и пользуясь этими правилами пиши под ними результат. У меня там /05.htm и примеры есть. КРОКОДИЛ твои обяснения рулят как "Кофейникам от самовара" Я готов порадоваться более понятному объяснению чем мое: "ИЛИ" - только 0 и 0 дают 0 "И" - только 1 и 1 дают 1 |
| 608. Dikoy, 05.05.2007 03:55 |
| КРОКОДИЛ N "или" - это N выключателей, соединённых паралельно. Лампочка загорается при замыкании (установки 1 на входе) любого из них. N "и" - то же самое, только тумблеры последовательно. Чтобы лампочка загорелась, надо замкнуть (установить на входах 1) их всех. |
| 609. КРОКОДИЛ, 05.05.2007 04:13 |
| Dikoy Так понятней, но непонятно зачем такие сложности и в каких случаях они используются? |
| 610. Dikoy, 05.05.2007 05:52 |
| КРОКОДИЛ но непонятно зачем такие сложности и в каких случаях они используются? Операции чтоли? В быту - как и те ключи, можно задавать аглоритмы включения, апример, сигналки при срабатывании групп датчиков. В жизни - это надо двоичную математику рыть. Не советую сразу этим заниматься ![]() |
| 611. psnsergey, 05.05.2007 07:26 |
| КРОКОДИЛ И - говорим на выход "Да", если и первый вход сказал "да", и второй, и третий... ИЛИ - говорим на выход "Да", если или первый вход сказал "да", или второй, или третий... Отсюда нетрудно сделать вывод двух формул де Моргана: Первая: если ИЛИ = 0, то ВСЕ входные сигналы схемы = 0 (и только тогда), а значит, проинвертировав их (получатся единицы) и подав на схему И, получим 1 (только если ВСЕ входа = 0). Иными словами, а ИЛИ б = НЕ((НЕ а) И (НЕ б)) Вторая: если И = 1, то ВСЕ входные сигналы схемы = 1 (и только тогда), а значит, проинвертировав их (получатся нули) и подав на схему ИЛИ, получим 0 (только если ВСЕ входа = 1). Иными словами, а И б = НЕ((НЕ а) ИЛИ (НЕ б)) Проще говоря, в отрицательной логике (если за "да" принимать не 1, а 0) схема И - это ИЛИ, а схема ИЛИ - это И. Понимание такового факта здорово помогает жить и работать. Можно сказать, что формулы де Моргана нераздельны с самим понятием операций И и ИЛИ, их надо запоминать вместе. Например, надо получить функцию ИЛИ, а в наличии только И. Нет проблем: ставим элемент И, снабжаем входы ("нырок" в отрицательную логику, где "наш" И - это ИЛИ) и выход (всплытие "обратно" в "нашу" логику) инверторами - и наслаждаемся, даже не думая. Ещё пример: схема ИЛИ выдаёт 0 только если И первый, И второй, И третий входа = 0. схема И выдаёт 0, только если ИЛИ первый, ИЛИ второй, ИЛИ третий входа = 0. |
| 612. Kosta_GG, 05.05.2007 13:11 |
| Меня учили так : И - операция "умножения", если хоть один из множителей равен нулю, то произведение равно нулю. Стало быть чтобы произведение было равно единице, нужно чтоб все множители были единицы. ИЛИ - операция "сложения", если хоть одно слагаемое НЕ ноль, то и сумма будет НЕ ноль. Чтобы сумма была нулем, необходимо чтобы все слагаемые были нули. |
| 613. КРОКОДИЛ, 05.05.2007 16:22 |
| psnsergey схема ИЛИ выдаёт 0 только если И первый, И второй, И третий входа = 0. схема И выдаёт 0, только если ИЛИ первый, ИЛИ второй, ИЛИ третий входа = 0. Класс -сразу во все начал вьезжать! ![]() Kosta_GG Меня учили так : И - операция "умножения", если хоть один из множителей равен нулю, то произведение равно нулю. Стало быть чтобы произведение было равно единице, нужно чтоб все множители были единицы. В принципе тоже самое что сказал psnsergey только более непонятно для человека который незнает о чем идет речь ![]() Добавление от 05.05.2007 16:56: Sony_Sony |
| 614. Dikoy, 06.05.2007 00:39 |
| Не думаю, что он существует. Кроме того, потроха меги 128 и тиньки, в принципе, одинаковы. При использовании кодевижна вообще не должно возникнуть проблем... |
| 615. КРОКОДИЛ, 06.05.2007 01:49 |
| Dikoy Кроме того, потроха меги 128 и тиньки, в принципе, одинаковы Тоесть можно писать прогу под мегу128, а потом спокойно ее заливать в ATtiyny2313? А кодевижен работает с асемблером? ![]() |
| 616. Dikoy, 06.05.2007 04:16 |
| КРОКОДИЛ Тоесть можно писать прогу под мегу128, а потом спокойно ее заливать в ATtiyny2313? Нет. Можно посмотреть в ДШ к меге устройство модулей, которые есть в тиньке. например, UART, SPI и т.п. Разобраться в их работе. Потом сверить устройство с тинькой - скорее всего пары бит или возможностей, обрисованых в меге, в тиньке не будет. В остальном всё совпадёт. Сверив, используем эти модули в своей проге. Всё остальное - математика и т.д. - это забота Си компилятора. Он сам распихает по регистрам. То есть, при использовании Си тебе надо только знать, как работают те аппаратные модули, которые ты собираешься использовать, чтобы правильно их использовать. Остальные коде-вижн отключит по умолчанию сам. Вычисления и т.д. ты пишешь в тексте программы обычными мат. операторами, вместо чисел используя переменные языка. А переменная - это ни что иное, как регистр где-то в памяти МК. Где, тебя не колышет. Си сам их распределил и работает с ними. Если пишешь на ассме - тогда сложнее, придётся ВСЁ делать вручную. Тут действительно придётся штудировать весь даташит на конкретную железку... Оно тебе надо? ![]() Учебник по Си для средней школы (а больше для МК не надо), это 40 страниц книжки мелкого формата.... Меньше школьного реферата по объёму...А кодевижен работает с асемблером? Любой Си компилятор позволяет делать ассемблерные вставки в тело программы. Причём длина вставок неограничена - хоть всю прогу напиши. Только опять же, зачем? ![]() Вставляют так: #asm //твои асмовые творения #endasm И всё. При компиляции твой асмовый код вклеется между откомпилеными Си кодами до и после твоего творения. Почему ты так упорно не хочешь изучить Си? Он же проще! Да, там больше операторов чем в асме, но 1 - они все тебе сразу и не понадобятся, а вот асмовые команды скорее всего используются все сразу. 2 - они в итоге избавят тебя от кучи проблем и головной боли. Добавление от 06.05.2007 06:24: КРОКОДИЛ код: Кстати, напомни, что ты хотел залить с компа? То есть, какие частоты (каналы), сколько их и т.д. Сколько полей ввода и для каких чилез должно иметь ПО. Короче, как ты её видишь. Я напишу ПО на делфи и процедурку на CV, её потом подклеим к программе из задачи и всё... А то вдруг что изменилось с того момента, как я последний раз это спрашивал. |
| 617. Pyku_He_oTTyda, 06.05.2007 10:51 |
| КРОКОДИЛ куда отправить? у меня есть в смысле на 90S2313 |
| 618. Sony_Sony, 06.05.2007 20:18 |
| slil.ru |
| 619. Pyku_He_oTTyda, 06.05.2007 20:28 |
| http://cp.people.overclockers.ru/cgi-bin/dl.pl?id=22…=AT90S2313rus.pdf |
| 620. Xradio, 06.05.2007 20:50 |
| Dikoy Почему ты так упорно не хочешь изучить Си? Он же проще! "С" надо изучать. Ассемблер тоже. deleted Иначе говоря... Язык ассемблера не является собственно языком... Это мнемоника команд микроконтроллера! - Это базовая суть любой СИСТЕМЫ. Владеющий ей - Хозяин! В отличии от тебя, Dikoy , к СО ЖА ЛЕ НИ Ю...!!! Как, впрочем, и многих других здесь халявщиков... |
| 621. КРОКОДИЛ, 07.05.2007 02:50 |
| Xradio Случайно не помнишь рецепт травилки на основе медного купороса и соли, а то я уже не помню сколько чего сыпать . А хлорное железо закончилось. ![]() Добавление от 07.05.2007 02:52: Pyku_He_oTTyda Добавление от 07.05.2007 03:11: Dikoy Добавление от 07.05.2007 04:35: Dikoy |
| 622. Dikoy, 07.05.2007 06:29 |
| Xradio Язык ассемблера не является собственно языком... Это мнемоника команд микроконтроллера! - Это базовая суть любой СИСТЕМЫ. Владеющий ей - Хозяин! Тогда начинай с объяснения КРОКОДИЛу смысла И, ИЛИ и регистров. Сдвигов и т.п. рассыпушных терминов. А то интересно получается - товаришь в логике не шарит, время его жмёт, но некоторые упорно садят его на ассм ![]() Ты б тогда хоть алгоритм-билдер ему порекомендовал, чтоли... В отличии от тебя, Dikoy , к СО ЖА ЛЕ НИ Ю...!!! Я владею ассмом. Ещё я умею менять накладки на диске сцепления. Заклёпки загонять. Цилиндры в машине ремонтировать. Но почему-то предпочитаю покупать диски и цилиндры в сборе новые. Я не доказываю проигрыш асма. Я исхожу из реалий - изучение МК за короткий срок. И тут CVAVR без конкурентов. Добавление от 07.05.2007 07:04: КРОКОДИЛ |
| 623. Pyku_He_oTTyda, 07.05.2007 07:34 |
Две ложки купороса и четыре ложки соли на пол-литра , дать настоятся и травить в горячем растворе |
| 624. КРОКОДИЛ, 07.05.2007 12:31 |
| Pyku_He_oTTyda Понял, спасибо! ![]() Dikoy Ну в моём куске то разобрался? Не совсем еще, -тут блин дергают меня по работе в разные стороны- не дают сосредоточится Я чтото пропустил что это за цифра 8196, кто такой char и что значит rjmp и rjmp forever?? - в компиляторе вычитал.Добавление от 07.05.2007 12:34: Dikoy |
| 625. Sony_Sony, 07.05.2007 20:18 |
| КРОКОДИЛ Sony_Sony насчет И и ИЛИ -смотрю на пример и ничего не могу понять -не совпадает с обьяснением Я несколько раз УЖЕ говорил тебе - ПИСАТЬ НА БУМАГЕ НАДО !!! В СПЕЦИАЛЬНОЙ ТЕТРАДКЕ !!! КАК В ШКОЛЕ !!! В уме будешь прикидывать когда понимать начнешь ! ========================= Вот пример со страницы 5 курса. ==================== 10010 | 1001111 // "ИЛИ" - только 0 и 0 дают 0 // англ. название OR 1011111 // это результат // только биты_5 в обоих числах были нули ==================== Решение: запишем оба числа с которыми производится операция ИЛИ - "столбиком" как в школе - т.е. друг над другом. 0010010 1001111 Теперь берем бит_0 в каждом числе и применяем правило ("ИЛИ" - только 0 и 0 дают 0) записываем результат. Это 0 1 значит по правилу результат 1 Тоже делаем со следующими битами. Получаем: 1011111 Такой же ответ и в примере указан. ========================== РЕШАЙ НА БУМАГЕ !!! |
| 626. КРОКОДИЛ, 08.05.2007 03:05 |
Да я ж уже писал, что незнал про нулевой бит -поэтому сбило с толку пояснение только биты_5 в обоих числах были нули - если считать как я считал то пятые биты не получаются нулями. Так что хоть пиши хоть не пиши -все равно ничего не получалось Да и сейчас не очень понятно -где ты взял эти числа и куда нужно девать результат? ![]() Sony_Sony РЕШАЙ НА БУМАГЕ !!! Слушаюсь и повинуюсь! А можно в исходник на асемблере вставлять вставки на Си??? Если можно то как??? ![]() Sony_Sony На какой странице у тебя "Шапка" программы описывается? |
| 627. Sony_Sony, 08.05.2007 06:28 |
| КРОКОДИЛ Да я ж уже писал, что незнал про нулевой бит -поэтому сбило с толку пояснение только биты_5 в обоих числах были нули - если считать как я считал то пятые биты не получаются нулями. Я СТО раз тебе уже писал что таблица различных представлений числа все на той же странице /05.htm уже года 3 лежит !!! КРОКОДИЛ Да и сейчас не очень понятно -где ты взял эти числа В голове ессно... ПРОСТО ПРИМЕР ! Любые два числа. Возьми любые пары да потренируйся. Результат сюда. КРОКОДИЛ и куда нужно девать результат? НИКУДА !!! Считать компилятор будет. Вместо пары чисел он будет "видеть" и использовать результат. КРОКОДИЛ А можно в исходник на асемблере вставлять вставки на Си??? НихьТ КРОКОДИЛ Sony_Sony На какой странице у тебя "Шапка" программы описывается? Все на той же странице /05.htm "Си для МК" ======================================== Кроме моего непонятно написаного курса ЕСТЬ КНИГИ !!! |
| 628. Dikoy, 08.05.2007 07:21 |
| Sony_Sony Кроме моего непонятно написаного курса ЕСТЬ КНИГИ !!! Вот и я ему уж сколько талдычу - купи ШКОЛЬНЫЙ УЧЕБНИК ПО СИ!!! Не хочет человек... ![]() Вот сейчас открыл бы и сразу увидел, что char, это объявление переменной типа char, то есть 8 бит длиной... КРОКОДИЛ Я чтото пропустил что это за цифра 8196 Читай в задаче 12 курса ![]() Вообще, я всё больше убеждаюсь, что ты ВООБЩЕ не смотришь, что тебе написали и не сравниваешь это с кодами. Ибо если б ты это делал, то уже давно бы сам написал прошивку, а не спрашивал, что такое char... Записи unsigned long int и unsigned int , я так понимаю, вопросов не вызывают? ![]() Так что можно LMXы заказывать?! А эт я не знаю! Теоретически, работать они будут. Числа мы в их регистры загоним (когда нибудь), а вот КАК они будут работать, это большой ХЗ, тут я те не помошник ![]() Pyku_He_oTTyda Слухай, что-то твоя ДШ у меня не качается упорно Не можешь на мыло скинуть? (в инфо) |
| 629. Pyku_He_oTTyda, 08.05.2007 07:47 |
| Dikoy отмылил все руские, что были 2313,1200,2323 |
| 630. Sony_Sony, 08.05.2007 08:27 |
| Антиквар ! Добавление от 08.05.2007 08:29: Dikoy |
| 631. Pyku_He_oTTyda, 08.05.2007 08:41 |
| Sony_Sony не качай ![]() |
| 632. Dikoy, 08.05.2007 12:04 |
| Pyku_He_oTTyda Ща на свой сайт выкину, от туда должно у всех качаться... Sony_Sony Ты когда-нибудь AT45D161 с питанием 5 вольт юзал? Как впечатления? Добавление от 08.05.2007 12:27: Во: |
| 633. Sony_Sony, 08.05.2007 12:37 |
| Sony_Sony Ты когда-нибудь AT45D161 с питанием 5 вольт юзал? Как впечатления? Я AT45DB161 использовал в задаче 7 /z7.htm - до сих пор работает Апноут AVR335 |
| 634. КРОКОДИЛ, 08.05.2007 14:16 |
| Dikoy Вот и я ему уж сколько талдычу - купи ШКОЛЬНЫЙ УЧЕБНИК ПО СИ!!! Куплю конечно, но пока не попадается -у нас все книжные магазины под ликероводочные переделали ![]() Вообще, я всё больше убеждаюсь, что ты ВООБЩЕ не смотришь, что тебе написали и не сравниваешь это с кодами. Ибо если б ты это делал, то уже давно бы сам написал прошивку, а не спрашивал, что такое char... Ну нехватает у меня мозгов на все сразу ![]() а вот КАК они будут работать, это большой ХЗ, А чего бы им не работать? если все правильно написано? ![]() Добавление от 08.05.2007 14:26: Sony_Sony Добавление от 08.05.2007 20:20: Sony_Sony |
| 635. Dikoy, 09.05.2007 09:41 |
| КРОКОДИЛ Как мне создать проэкт? Ща он тебя отправит на первую страницу курса и будет прав... ![]() |
| 636. Sony_Sony, 09.05.2007 11:53 |
| КРОКОДИЛ Вот допустим собрался я написать программу, отрыл кодевижен, -передо мной пустое окно, что я должен делать дальше? Как мне создать проэкт? Это задача-упражнение 3 - proavr.narod.ru/z3.htm - CVAVR по шагам и VMLAB. Но курс рассчитан на чтение с начала. Например язык Си для МК и структура программы это страницы /05.htm и /05a.htm Механизм прерваний в AVR - страница /03.htm Устройство AVR - страница /02.htm Добавление от 09.05.2007 11:54: ==== Добавление от 09.05.2007 11:58: Dikoy |
| 637. КРОКОДИЛ, 09.05.2007 16:26 |
| Dikoy Ща он тебя отправит на первую страницу курса и будет прав... Так пусть блин навигацию по курсу сделает или хотябы переключатель страничек, а то чтобы вернутся с седьмой страницы на третью целый геморой получается ![]() |
| 638. Sony_Sony, 09.05.2007 16:44 |
| Да какой геморой !!! Всего-то в адресе страницы в браузере 7 на 3 заменить и "ентер" нажать. Сегодня день победы - надеюсь вы победите. |
| 639. КРОКОДИЛ, 09.05.2007 18:32 |
| Sony_Sony Это задача-упражнение 3 - proavr.narod.ru/z3.htm - CVAVR по шагам и VMLAB цитата:Ну вопервых меня неустраивает внутренняя частота 1мгц, а нужен внешний кварец на 4,5мгц -как его включить -просто вписать в окошко эту частоту? А что выставлять в окошке Crystal Oscillator Divider??? ![]() Добавление от 09.05.2007 19:34: Промт переводит слово Divider как Сепаратор -это чё такое??? Добавление от 09.05.2007 19:38: А какие порты лучше выставлять на выход? Добавление от 09.05.2007 19:43: Dikoy |
| 640. Sony_Sony, 09.05.2007 19:47 |
| дивайдер - делитель, сепаратор тоже как бы делит что-то на фракции. Вписать в частоту. Подумай - если у тебя кварц на Х и тебе нужна частота Х то на сколько нудно делить ? Выходы и входы нужно назначть в соответствии с вашей схемеой. |
| 641. КРОКОДИЛ, 09.05.2007 20:09 |
| Sony_Sony Выходы и входы нужно назначть в соответствии с вашей схемеой. Тоесть ограничений или приоритетов никаких нет? ![]() Добавление от 09.05.2007 20:39: Dikoy цитата:Здесь Sony_Sony считал под кварц 10,245мгц с шагом 1,25кгц. Но условия задачи изменились и нужно под 4,5мгц с шагом 12,5кгц - тоесть делитель будет 360! А как посчитать тактовую частоту самого МК для такой задачи? ![]() |
| 642. Sony_Sony, 09.05.2007 20:54 |
| КРОКОДИЛ Тоесть ограничений или приоритетов никаких нет? В принципе нет. Но если вам USART нужен то не стоит на его выводы светодиод вешать или ключ. КРОКОДИЛ нужно под 4,5мгц с шагом 12,5кгц - тоесть делитель будет 360! А как посчитать тактовую частоту самого МК для такой задачи? Дак 4.5 и подойдет. Чтоб 1 кварц использовать. Тыб МК указал уже ... |
| 643. КРОКОДИЛ, 10.05.2007 02:10 |
| Sony_Sony В принципе нет. Но если вам USART нужен то не стоит на его выводы светодиод вешать или ключ. Уже конкретней! ![]() Тыб МК указал уже ... Дык я ж уже указывал ATtiny2313 - других просто нет в наличии, -да и не нужно вроде как, -я думаю ресурсов должно хватить ![]() Добавление от 10.05.2007 02:28: Sony_Sony код:Далее, подсчитываешь значения регистров R, N и т.д., загоняешь их в буфер в памяти (так понятней и наглядней), потом этот буфер нарезаешь на 3 части (3 восьмибитных числа) и тупо передаёшь в синтезатор. А сколько всего регистров нужно? Как организовать опрос переключателя? А в ЕЕПРОМ тоже нужно организовывать трехэтажные ячейки типа hi, mid, low? И как это все вместе увязать? ![]() И как организовать восемь ножек на переключатель -просто переключить один порт полностью на вход? Так у ATtiny2313 вроде только один порт восьмибитный -впрочем мне и семи положений должно хватить. Как организовать вытаскивание данных из ЕЕпром, -это нужно специальную подпрограмму писать?Добавление от 10.05.2007 08:32: Что обозначают фигурные скобки? -на твоем сайте я ничего про них ненашел |
| 644. Dikoy, 10.05.2007 11:37 |
| Sony_Sony Я AT45DB161 использовал в задаче 7 /z7.htm - до сих пор работает Мне по ТЗ нельзя юзать микрохемы в нестандартных режимах. Вот и спрашиваю про пятивольтную. КРОКОДИЛ Так пусть блин навигацию по курсу сделает или хотябы переключатель страничек, а то чтобы вернутся с седьмой страницы на третью целый геморой получается Это да, это всех бесит ![]() Самое смешное, что мест по краям море, всунуть фрейм со ссылками не проблема... как его включить -просто вписать в окошко эту частоту? А что выставлять в окошке Crystal Oscillator Divider??? Значение частоты кварца нужно компилятору, например, для расчёта задержек. Ввёл ты, к примеру, дадержку на 10 мС ( delay_ms(10); ), вот он и расчитывает, сколько тиков шины надо отсчиать для такой задержки при заданной частоте кварца. Делитель осцилятора позволяет делить частоту кварцевого генератора в какое-то число раз. Причём включать этот делитель ты можешь из своей программы в процессе работы устройсва. Это полезно, например, для снижния потребления девайса путём снижения его тактовой частоты. Опять же, тактовые частоты всех частей МК выростают из частоты осцилятора. Если тебе надо передать данные по UART на свернизкой скорости (ну мало ли...) а UARTовского делителя не хватает, можно на время передачи снижать частоту всего МК. Что обозначают фигурные скобки? -на твоем сайте я ничего про них ненашел Они ограничивают поле действия оператора. Например, цикл while (1) { много_разных_операций } будет крутиться в пределах, ограниченных фигурными скобками. А какие порты лучше выставлять на выход? Любые. Причём на вход/выход выставляются не порты, а конкретные лапки. В пределе порта можут быть и входы, и выходы. Прежде чем выставлять их, убедись, что ты не используешь альтернативную функцию этой лапки. Например, тот же UART при включении занимает лапки Rx\Tx и ему пофиг, что ты там на эти лапки навключал ![]() А как посчитать тактовую частоту самого МК для такой задачи? любая, на которой UART работет без ошибок. Открываешь ДШ, раздел UART. Там в самом конце раздела табличка, частоты кварцев, скорости UART и ошибки (Error) UART на этих скоростях при данной частоте кварца. Вот выбирай любой кварц где напротив скорости 9600 стоит 0.0%, там много вариантов. Дак 4.5 и подойдет. Чтоб 1 кварц использовать. Угу. А как UART будет работать? ![]() А сколько всего регистров нужно? Три, причём с одним мы уже разобрались ![]() Как организовать опрос переключателя? Тут вариантов много. Давай сначала с синтезатором закончим. А в ЕЕПРОМ тоже нужно организовывать трехэтажные ячейки типа hi, mid, low? И как это все вместе увязать? Можно и длинные, как хочешь. Чтобы твоя переменная оказалась в епром, нужно при её объявлении перед ней этот епром написать: eeprom long int koefp; И всё, 32 бита у тебя уже сидят в епроме ![]() Вытаскивать ничего не надо - просто используешь эту переменную в работе и всё. Когда ты её изменяешь, она перезаписывается в епроме. Но учитывая, что по UART ты будешь получать восьмибитные значения, то есть коэффициенты будут уже накромсаны, то удобней сразу делать в епроме трёхэтажные значения. |
| 645. Sony_Sony, 10.05.2007 11:47 |
| Dikoy Sony_Sony Я AT45DB161 использовал в задаче 7 /z7.htm - до сих пор работает Мне по ТЗ нельзя юзать микрохемы в нестандартных режимах. Вот и спрашиваю про пятивольтную. Они разве выпускаются еще ??? Добавление от 10.05.2007 12:12: Dikoy Добавление от 10.05.2007 12:15: КРОКОДИЛ |
| 646. КРОКОДИЛ, 10.05.2007 13:50 |
| Dikoy Сушай я непойму зачем коофицент деления кварца обьявлять как переменную? Скорее всего он должен рулить за константу, ведь именно этот коофицент выдает Эталонную частоту 12,5кгц для петли автозахвата и недолжен менятся никогда и не при каких условиях, а менятся будут только частота приема и частота передачи, но они заранее не известны, -хотя можно в них ради приличия забить края диапазона. А коофицент деления кварца длжен сидеть не в еепроме а быть жестко забитым в пересчете самой программы. Тоесть один раз прописали его и забыли про него. |
| 647. Dikoy, 10.05.2007 14:14 |
| КРОКОДИЛ Если ты не будешь менять константу в программе, она и не изменится. Логичнее следать её в епроме,ч тобы изменить можно бьыло в любой момент с ПК - вдруг захочется другой шаг и т.д. Зачем умышленно уменьшать возможности прибора? ![]() коофицент деления кварца обьявлять как переменную? Ты про какрой кварц? Который в МК или который в синтезаторе? Sony_Sony или в режиме x2 9600 Вот Х2 при использовании обычного компового СОМ порта я бы не пользовал... Всякие FT232 лопают (и выдают) пакеты устойчиво и Х2 позволяет их устойчиво принимать. а вот сомпровые порты - далеко не все... |
| 648. Sony_Sony, 10.05.2007 14:29 |
| Dikoy Вот Х2 при использовании обычного компового СОМ порта я бы не пользовал... Всякие FT232 лопают (и выдают) пакеты устойчиво и Х2 позволяет их устойчиво принимать. а вот сомпровые порты - далеко не все... Какую то чепуху ты пишешь ! режим Х2 существует лишь внутри МК !!! наружу выдача ни как не отличается. СОМ порт ни чего не знает об этом - ему плевать что там внутри МК творится. |
| 649. КРОКОДИЛ, 10.05.2007 14:46 |
| Dikoy Если ты не будешь менять константу в программе, она и не изменится. Логичнее следать её в епроме,ч тобы изменить можно бьыло в любой момент с ПК - вдруг захочется другой шаг и т.д. Зачем умышленно уменьшать возможности прибора? Не, шаг 12,5 килогерца является универсальным и менятся не будет, изменение шага применяется только в синтезаторах с клавиатурой и дисплеем -для того чтобы переключать можно было быстрее. А 12,5 это минимальная ширина полосы пропускания УКВ трансиверов, тоесть уменьшать уже некуда, а увеличивать в данном варианте бессмысленно. А ЕЕпром подвержен сбоям если собьется один из частотных каналов то ничего страшного, -есть запасной, а если сбьется шаг то погибнут сразу все каналы. А обьявить его константой я хотел чтобы меньше с ним было возни. коофицент деления кварца обьявлять как переменную? Ты про какрой кварц? Который в МК или который в синтезаторе? Не, кварц должен быть один для тактирования МК- тоесть нужно выбрать какоето значение чтобы оно стыковалось с UART и одновременно было кратно 12,5килогерцам для синтезатора, а в синтезаторе есть свой предделитель для кварца позволяющий подлючать практически любой кварц кратный частоте сравнения и именно на него нужно выдать константу обеспечивающую нужный шаг. Вот схемка с типовым включением кварца см. рис. Добавление от 10.05.2007 14:59: Dikoy код:;Программа для синтезатора УКВ радиостанции, микросхема LM7001 Добавление от 10.05.2007 15:05: Dikoy К сообщению приложены файлы: 1.gif |
| 650. Dikoy, 10.05.2007 15:22 |
| Sony_Sony режим Х2 существует лишь внутри МК !!! Квантования приёма 8 раз? Некоторые СОМ порты такую чушь выдают, что МК их не понимает в Х2. |
| 651. Sony_Sony, 10.05.2007 15:31 |
| Дак ты то писал про непонимание КОМ портом !!! Если КОМ на 9600 не понятное для 8-ми опросов на бод выдает то стоит ли использовать такой СОМ ? И является ли он КОМ ? |
| 652. КРОКОДИЛ, 10.05.2007 16:52 |
| Dikoy Логичнее следать её в епроме Так может и ЕЕПРОМа нехватить, а вешать внешний нехочется! ![]() |
| 653. Dikoy, 10.05.2007 20:39 |
| КРОКОДИЛ Так может и ЕЕПРОМа нехватить, а вешать внешний нехочется! Тебе хватит ![]() |
| 654. КРОКОДИЛ, 10.05.2007 21:14 |
Чтото я несоображу -восемь каналов по 32 бита это уже 256 а у tn2313 всего 128 ![]() Добавление от 11.05.2007 02:56: Dikoy Добавление от 11.05.2007 04:02:
|
| 655. joptpd, 11.05.2007 11:15 |
| я тут поднимал вопрос о кварцах керамике и внутрених генераторах дык вот практика показывает нормальную работу тини2313 от встроеного генератора на 8 мгц с делителем 8 т.е. перифирия работает на 1мгц юарт на 2400 работает без ошибок но на 9600 он не будет от 1мгц надо бит делителя снять и для управления лм7001 в мк кварц не нужен ваще мода какая то пошла на кварцы ладно еще там дырки просверлить но где взять кондеры по 22пф? да еще смд |
| 656. An_private, 11.05.2007 11:25 |
| КРОКОДИЛ потому что дробные кварцы я буду искать долго и нудно с какого? наоборот кварцы для UART есть почти всегда. А вот найти какой-нибудь 27.000 МГц - застрелишься. |
| 657. Dikoy, 11.05.2007 12:05 |
| КРОКОДИЛ Так UART использует еще и лапки INT0 и INT1 -на них тоже ничего нельзя вешать? Нет, INT - это прерывания. Ты их можешь е использовать. Для UART необходимы только Rx|Tx. кроме того они не будут совпадать с пересчетом частот синтезатора Ты же вроде решил раздельные кварцы на МК и трансивер вешать?.. ![]() joptpd ваще мода какая то пошла на кварцы Ну да... Ему то, по сути, стабильость частоты нужна только для работы по UART. SPI для связи с трансивером вообще не требователен к стабильности, а больше там стабилизировать то и нечего... но где взять кондеры по 22пф? да еще смд Что у вас там в дойчленде за индустрия, если кондёров купить проблема?.. ![]() КРОКОДИЛ Мож тебе правда мозг не любить а запустить МК от внутреннего RC на 8 МГц? 9600 работать будет с терпимой ошибкой, в конце концов сделаем проверку правильности приёма данных... ЗЫ: Всё, я уезжаю в Тулу, там инета не будет, зато будет делфи Так что со связи исчезаю временно, но прогу напишу.Добавление от 11.05.2007 12:06: An_private |
| 658. An_private, 11.05.2007 12:07 |
| Dikoy Даже когда найдёшь, ещё надо умудриться запустить его на этих 27 так я генераторы готовые покупаю ![]() |
| 659. КРОКОДИЛ, 11.05.2007 15:32 |
| joptpd и для управления лм7001 в мк кварц не нужен лм7001- это я для примера привел, -а вообще пытаюсь спроэктировать под LMX2316 а она более требовательная к стабильности, тем более при частотах 144...470мгц. Добавление от 11.05.2007 15:45:
|
| 660. Kokosha, 11.05.2007 15:50 |
| КРОКОДИЛ Так не совпадают частоты UART с пересчетом частот синтезатора Дак внимательно страницу 23 прочитайте !!! |
| 661. An_private, 11.05.2007 15:55 |
| КРОКОДИЛ Так не совпадают частоты UART с пересчетом частот синтезатора с чего? стандартные частоты - 3.6864, 7.3728, 14.7456 - в любом магазине |
| 662. КРОКОДИЛ, 11.05.2007 16:19 |
| Dikoy Ты же вроде решил раздельные кварцы на МК и трансивер вешать?.. Ну да, смотри что получается: в трансивере стоит кварц 10,245мгц который нельзя применить для микросхемы синтезатора изза несовпадения пересчета, значит ставим в синтезатор отдельный кварец -допустим на 4,5 мгц, а теперь получается что для МК тоже нужно ставить свой кварц. Тесть уже третий? ![]() Мож тебе правда мозг не любить а запустить МК от внутреннего RC на 8 МГц? Не доверяю я RC для узкополосых устройств бесподстроечной связи. Запускать устройство в серию с RC непроверив стабильности я не рискну, -хочется жить спокойно! Здесь нестоит забывать что трасиверы будут стоять в автомобилях в том числе и отечественых -тоесть стабильности питания никакой! И перепады температуры от минус 30 до плюс 70градусов! Может сделать чтоб он работал в обычном режиме от кварца, а при перезаписи по UART переключался на встроеный RC, а после перезаписи снова на кварц? А можно так сделать? Или просто поставить кварц на 8 мгц и не сушить мозги? -он вроде совпадает и с синтезатором и с UART. Вечером посмотрю есть ли они на фирме. |
| 663. Kokosha, 11.05.2007 16:26 |
| КРОКОДИЛ допустим на 4,5 мгц, а теперь получается что для МК тоже нужно ставить свой кварц. По странице 23 не получается лишнего кварца для МК. Добавление от 11.05.2007 16:27: КРОКОДИЛ |
| 664. КРОКОДИЛ, 11.05.2007 16:30 |
| An_private стандартные частоты - 3.6864, 7.3728, 14.7456 - в любом магазине Не, мне нужно чтобы кварц был кратен 12,5 килогерцам. А UARTовские не отвечают этому требованию. |
| 665. K_AV, 11.05.2007 16:41 |
| КРОКОДИЛ "Я кстати так толком и ненашел где у него шаг забит!" Шаг определяется синтезатором. Режим работы синтезатора задается засылкой в него 3 управляющих байт. код:Вот расписана структура этих 3 байт. Два младших "mult_l", "mult_m" определяют значение внутреннего делителя частоты, старший "mult_h" - все остальное (S, R2, R1, R0, TB, B2, B1, B0), в т.ч. и шаг (опорную частоту) - конкретно для частоты это биты "R2", "R1", "R0" (по даташиту на LM7001).;*************************************************** код:А вот тут байту "mult_h" присвоено значение 0xA4 = b10100100, отсюда "R2 R1 R0" -> "010", т.е. значение частоты (из даташита) 25 кГц.no_minus: |
| 666. КРОКОДИЛ, 11.05.2007 16:43 |
| Kokosha Дак внимательно страницу 23 прочитайте !!! Это насчет чего конкретно? А за что тебя опять забанили? ![]() По странице 23 не получается лишнего кварца для МК. Имеется в виду шаг 1,25килогерца? Так тогда делители огромные получаются -для частоты 470мгц делитель будет 376000 а вдруг мне понадобится 1200мегагерц? что тогда -опять сушить мозги над новой програмой? Я этого второй раз непереживу! ![]() |
| 667. K_AV, 11.05.2007 16:49 |
| КРОКОДИЛ "Я этого второй раз непереживу!" Так во второй раз будет гораздо легче ![]() |
| 668. КРОКОДИЛ, 11.05.2007 16:52 |
| K_AV А вот тут байту "mult_h" присвоено значение 0xA4 = b10100100, отсюда "R2 R1 R0" -> "010", т.е. значение частоты (из даташита) 25 кГц. Во как все запутано Сам я не в жись бы не нашел! Спасибо! ![]() Добавление от 11.05.2007 17:00: K_AV Добавление от 11.05.2007 17:14: Dikoy Добавление от 11.05.2007 17:19: Kokosha |
| 669. K_AV, 11.05.2007 18:07 |
| КРОКОДИЛ "Тебе нигде не попадалась апнота на перeделку с PIC16F84A на PIC16F628?" http://www.microchip.com/stellent/idcplg?IdcService=…E&nodeId=1955 - перечень всех аппнот по переходу от одного контроллера на другой. Требуемое тебе - отсутствует. Видимо, Microchip не считает PIC16F628 прямым наследником (заменителем) PIC16F84A . Так что придется класть рядом два даташита... |
| 670. Kokosha, 11.05.2007 18:32 |
| КРОКОДИЛ Имеется в виду шаг 1,25килогерца? имеется ввиду что там написано что UART будет работать НОРМАЛЬНО и при кврце 4.5 МГц Добавление от 11.05.2007 18:32: и указаны скорости передачи. |
| 671. КРОКОДИЛ, 11.05.2007 19:30 |
| Kokosha имеется ввиду что там написано что UART будет работать НОРМАЛЬНО и при кврце 4.5 МГц А, понятно, я ж не спец в этом -поэтому и заморачиваюcь. K_AV Требуемое тебе - отсутствует. Видимо, Microchip не считает PIC16F628 прямым наследником (заменителем) PIC16F84A Блин -невезет так невезет!!!? А можешь толком объяснить чё там менять нужно, это уже отлаженный и рабочий проэкт, вот только PIC16F84A все трудней и дорoже с каждым днем находить. Вот исходник: код:;******************************************************************* Добавление от 12.05.2007 05:48: Kokosha |
| 672. Dikoy, 12.05.2007 11:13 |
| КРОКОДИЛ Не доверяю я RC для узкополосых устройств бесподстроечной связи. Запускать устройство в серию с RC непроверив стабильности я не рискну А нафига она тебе в МК то нужна!?!?!? Я ж те объясняю, SPI, по которому МК обращается к синтезатору вообще не чувствителен к частотам, ибо он синхронный. Ты даже можешь прерывать передачу байта в любом месте, а потом когда нибудь продолжить - и ничего не произойдёт. Самому МК стабильность тоже пофиг. Единственно, где она нужна, это UART. Но им ты будешь пользоваться крайне редко, у него есть своя проверка ошибок, и самое главное - погрешность при кварце 4,5 УКЛАДЫВАЕТСЯ в допуски UАRT. То есть он БУДЕТ РАБОТАТЬ НОРМАЛЬНО. И перепады температуры от минус 30 до плюс 70градусов! Ты собрался пользовать UART в -30 в авто? Или дома спокойно зальёшь данные и забьёшь? ![]() а при перезаписи по UART переключался на встроеный RC, а после перезаписи снова на кварц? А можно так сделать? Можно, но не нужно. Надолго? ХЗ, пока по кафе всяким мыкаюсь... Обычный кварцевый генератор на одном транзисторе, только в колекторе(стоке) нужно поставить контур настроеный в резонанс на 27мгц -и всего делов. Правда место занимает,- для миниатюрных девайсов не шибко хорошо. Вот именно, что LC генератор был больше всей моей схемы. Я собирал 4 генератора - два на логике (1533 и 1554 серий) и два на транзисторах. 9 мег было повсеместно. Китайские кварцы ![]() Kokosha имеется ввиду что там написано что UART будет работать НОРМАЛЬНО и при кврце 4.5 МГц ![]() |
| 673. Kokosha, 12.05.2007 11:38 |
цитата (Dikoy):цитата (КРОКОДИЛ):Можно, ... [/i] КАК ??? Научи ! Добавление от 12.05.2007 11:50: КРОКОДИЛ |
| 674. K_AV, 12.05.2007 11:54 |
| КРОКОДИЛ Есть вероятность, что ничего переделывать вообще не придется. У более нового PIC16F628 в основном добавились новые ресурсы, которых не было у PIC16F84, а все "старое" осталось на своих местах и со старыми именами регистров. MICROCHIP это выдает за свое преимущество - такую совместимость "снизу вверх". Но придется все же внимательно пересмотреть. Посмотрю на досуге. 1. Только ведь это вроде не синтезатор уже? 2. Блин, толкаешь меня на чтение смеси английских и французских комментариев Какая из 3 схем на сайте по ссылке в шапке программы - та, к которой эта программа? Там все по-французски, а для меня французский - как для тебя английский. |
| 675. Kokosha, 12.05.2007 11:54 |
| Я тебе советую пока отвлечься от синтезатора и САМОСТОЯТЕЛЬНО написать с нуля программу мигания светодиодом, с периодом например 530 мС и затем добавить в нее прием чего то по UART. Затем добится ее работы в VMLAB - в нем нет тини2313 так что пиши для мега8. Только прогу не на лету выдумывай а проделай работу начная с бумажного алгоритма. |
| 676. КРОКОДИЛ, 12.05.2007 12:58 |
| K_AV Только ведь это вроде не синтезатор уже? Нет, это пульт управления для видеокамеры работающий по протоколу LANS, -по одному проводку передается более 16 команд. Смысл такой -при работе под водой камера закрывается в герметичный бокс и все оганы управления становятся недоступными, поэтому к ней подключается LANS с герконовой матрицей вместо клавиатуры, которую располагают на задней стене бокса. Схему я использовал вот эту см.рис. только добавил палельно выводу LANS кнопку на общий провод, -она включает камеру. Впрочем я сильно с ней не мудрил -залил программу и все сразу заработало как положено. А покупку деталей я свалил на заказчика -он живет в областном городе, но потом меня черти дернули за язык и я ему ляпнул что можно поставить 628ой и он купил 628мые -вот скоро должен переслать А насчет французкого я тоже в шоке был -долго не мог понять какой язык -поначалу думал что румынский! ![]() Добавление от 12.05.2007 13:10: Dikoy Добавление от 12.05.2007 13:48: Kokosha код:Я так понял что DDRD это регистры?#define DATA_LINE_ON DDRD.4 Или кодевижен их сам распишет?Только прогу не на лету выдумывай а проделай работу начная с бумажного алгоритма. Ну да, если бы я знал алгоритм, то у меня бы небыло целого моря вопросов! A если бы еще знал способы его реализации то сам бы давно нацарапал программу или ты думаешь что мне очень нравится безвылазно сиДеть в тырнете и слепнуть? Я тебе советую пока отвлечься от синтезатора и САМОСТОЯТЕЛЬНО написать с нуля программу мигания светодиодом, с периодом например 530 мС и затем добавить в нее прием чего то по UART. Затем добится ее работы в VMLAB - в нем нет тини2313 так что пиши для мега8. Блин я непонимаю, зачем делать бесполезные вещи? Вопросов по светодиодикам будет столькоже а может еще больше А помочь мне они ничем не помогут зато отберут еще месяц времени Чувствуешь какае огромное растояние между мигалкой и синтезатором? Кроме того я просто невоспринимаю информацию не относящуюся непосредственно к проблеме, -ну мозги у меня так устроены А мигающие светодиоды у нас продаются на базаре без всяких контролеров ![]() Добавление от 12.05.2007 13:58: Kokosha К сообщению приложены файлы: 1.gif |
| 677. Kokosha, 12.05.2007 14:07 |
| КРОКОДИЛ а у меня кодевижен отказывается включать прерывания для UARTA, -выскакивает какаято непонятная надпись -чтото насчет комерции. в курсе же написано - ШАГ 1 "компилятор CodeVisionAVR (2 Мб всего) Бесплатный DEMO до 2 кб кода, а полный CVAVR ниже на сером фоне. " Скачай ПОЛНЫЙ !!! Добавление от 12.05.2007 14:10: КРОКОДИЛ Добавление от 12.05.2007 14:13: КРОКОДИЛ |
| 678. КРОКОДИЛ, 12.05.2007 14:17 |
| Kokosha что пиши для мега8. И где я возьму эту самую мега8 чтобы попробовать, -я их не заказывал, а ждать доставки из Киева или Харькова нужно как минимум 2 недели! А с интерфейсом VMLAB я буду еще месяц разбиратся чтобы просимулировать мигалку. Добавление от 12.05.2007 14:25: Kokosha |
| 679. Kokosha, 12.05.2007 15:14 |
| КРОКОДИЛ И где я возьму эту самую мега8 чтобы попробовать, -я их не заказывал, а ждать доставки из Киева или Харькова нужно как минимум 2 недели! А с интерфейсом VMLAB я буду еще месяц разбиратся чтобы просимулировать мигалку. У тебя в голове КАША какая то !!! Если ты хочешь "в натуре" делать то конечно делай для имеющегося 2313. А мегу8 я тебе ЯСНО посоветовал для VMLAB и написал ПАЧЕМУ ! Не надо ее покупать и ждать. ======= Ты уже больше месяца колупаешся. Значит если бы ты послушал меня ДАВНО и заказал бы меги8 ТОГДА ! то чейчас они уже были бы у тебя на столе. ======= Щас я советую тебе сделать мигалку светодиодом - ты опять упираешся. Пройдет еще месяц ... потом еще .... ======== наверно на задачах 10 класса тоже можно учится складывать и вычитать. Однако в школе это делают на задачах именно 1-го класса. Ты считаешь что учеба в 1-м классе напрасная трата времени ??? |
| 680. Pyku_He_oTTyda, 12.05.2007 15:35 |
| КРОКОДИЛ а где ссылка про LANC была? Очень интересно! |
| 681. КРОКОДИЛ, 12.05.2007 16:33 |
| Pyku_He_oTTyda Так в исходнике вроде была, посмотри, я по тем ссылкам не лазил. Вечером скину тебе свои. У меня сейчас днем трафик шибко дорогой -1$ за мегабайт. Kokosha У тебя в голове КАША какая то !!! Точно! А как ты догадался! ![]() Щас я советую тебе сделать мигалку светодиодом - ты опять упираешся. Пройдет еще месяц ... потом еще .... Блин, ну я же не только за компом сижу а еще и работаю, и хозяйственных проблем очень много, и сельскохозяйственных. Да и мигалка мне врядли поможет понять алгоритм написания проги именно для ситезатора. P.S. Тебя наверно мамка с папкой кормят -поэтому у тебя и есть время круглосуточно в сети сидеть? Или тебе деньги платят за то что ты всех отправляешь на свой сайт? А эту ветку создал только для рекламы? ![]() Если ты хочешь "в натуре" Я привык больше паяльником работать а не симулянтами. |
| 682. Kokosha, 12.05.2007 17:03 |
| КРОКОДИЛ Я привык больше паяльником работать а не симулянтами. Вот и припаяй к 2313 светодиод и резистор 560 Ом и заставь его мигать. А то ты как киса воробьянинов "по-немецки ... ну, это я наю..." |
| 683. КРОКОДИЛ, 12.05.2007 17:34 |
| Kokosha Вот и припаяй к 2313 светодиод и резистор 560 Ом и заставь его мигать. Ну попробуй меня убедить что мне это нужно! Блин я тебя спросил: Нужно ли расписывать регистры нарисованые кодевиженом, а ты вместо одного слова -ДА или НЕТ целую страницу занимаешся демагогией. Ты в мой проэкт хоть заглядывал? А вообщето демагогия великая штука, если ей овладеть в совершенстве то всегда можно убедить женщину что мягкий конец лучше твердого.Добавление от 12.05.2007 17:37: Kokosha Добавление от 13.05.2007 02:18: Pyku_He_oTTyda |
| 684. Pyku_He_oTTyda, 13.05.2007 10:30 |
| КРОКОДИЛ Спасибо! Я как раз сейчас ланком занимаюсь Кстати, с какой моделью соньки пробовали? |
| 685. K_AV, 13.05.2007 12:17 |
| КРОКОДИЛ Проверь почтовый ящик, указанный в инфо, я сбросил туда скоррктированную программу. |
| 686. КРОКОДИЛ, 13.05.2007 18:32 |
| Pyku_He_oTTyda Кстати, с какой моделью соньки пробовали? Ну у меня очень старая антикварная и контуженная сонька Video-8 и половину функций не поддерживает, А у заказчика штук 7 цифровых современных сонек, -какие модели неназнаю, но говорит что все работает отлично, -он обещал еще на панасонниках попробовать но так и неотписался. И смотри эта штуковина на осцилографе не показывает ничего внятного -позтому создается впечатление что она неработает Испытания нужно проводить только в натуре. |
| 687. Pyku_He_oTTyda, 13.05.2007 19:09 |
цитата:само собой, ничего не покажет, так как она отвечает на команды из камеры |
| 688. КРОКОДИЛ, 13.05.2007 19:15 |
| K_AV Скачал, сейчас пытаюсь разобратся. Большое спасибо! ![]() Добавление от 13.05.2007 21:10: Pyku_He_oTTyda |
| 689. Dikoy, 14.05.2007 00:29 |
| КРОКОДИЛ Я так понял что DDRD это регистры? Или кодевижен их сам распишет? Это подмена. Оператор #define подменяет DDRD.4 на DATA_LINE_ON в коде. Причём подмена чисто для компилятора - он заменяет подмены исходным текстом на ранней стадии компиляции. Это удобно тем, что написав строку #define status_sintezatora DDRD.4 Ты в тексте программы можешь писать не if (DDRD.4 == X), a if (status_sintezatora == X) что намного понятней и легче читается. А соня прав - светодиод, это 10 минут времени и ты сразу увидишь результат. И вообще светодиод в схему включи - будешь его по ходу программы дёргать. Увидишь, в каком месте она глючит ![]() Вопросов по светодиодикам будет столькоже а может еще больше Светодиод - это умение програмно изменять состояние лапки и делать задержки. Ты думаешь, это тебе не нужно? А то, что вся процедура 12 задачи по передаче данных твоему синтезатору на этих операторах построена ты не видел?..Kokosha КАК ??? Научи ! Фьюзы перепрошивать внешней тинькой. Даже самопрограмирование можно сделать - но не с каждым АВР прокатит... |
| 690. КРОКОДИЛ, 14.05.2007 00:59 |
| Dikoy А то, что вся процедура 12 задачи по передаче данных твоему синтезатору на этих операторах построена ты не видел?.. Да причем здесь операторы -зделаю принтер -распечатаю и разберусь в операторах без всяких светодиодиков, а так и с ними нихрена не пойму! Тут мне более непонятно другое: структура самой программы, тоесть последовательность действий, вот если бы где нибудь посмотреть программу синтезатора на Си.Далее, подсчитываешь значения регистров R, N и т.д., загоняешь их в буфер в памяти (так понятней и наглядней), потом этот буфер нарезаешь на 3 части (3 восьмибитных числа) и тупо передаёшь в синтезатор. Вот, накропал для регистра R. Для остальных аналогично. Так а какие значения загонять в остальные регистры? Или во все одни и теже? И как обзывать регистры? Или произвольно? ![]() Добавление от 14.05.2007 07:29: Dikoy |
| 691. Pyku_He_oTTyda, 14.05.2007 07:31 |
| КРОКОДИЛ такие же, как и у вашего заказчика (боксирование подводных камер). До этого управление было по ИК порту.Единственное, что управление сам пишу, с нуля. Просто собираю исходники для информации (интересуют реально действующие команды). |
| 692. КРОКОДИЛ, 14.05.2007 07:42 |
| А я себе хотел соньку на видеонаблюдение участка поставить, а вот сейчас засомневался будет ли работать Lans через 40 метров кабеля? Приедут камни нужно будет попробовать. А начем пишешь на асме или на си, и под какие камни? Pyku_He_oTTyda интересуют реально действующие команды Заказчик говорит что абсолютно все кнопки работают. |
| 693. Pyku_He_oTTyda, 14.05.2007 07:48 |
| под АВР на Си. Стендик собран на Мега8535, в устройстве будет жить Мега8. 40 метров - не знаю, вероятнее всего будет, только на таком расстоянии без опторазвязки делать нельзя, а развязать в тупую LANC не получится. У меня для управления по проводу стоит опторазвязанная токовая петля, устройство внутри бокса преобразует внешние команды в команды по протоколу LANC |
| 694. КРОКОДИЛ, 14.05.2007 08:00 |
| Pyku_He_oTTyda только на таком расстоянии без опторазвязки делать нельзя, A почему нельзя -в чем грабли? |
| 695. Pyku_He_oTTyda, 14.05.2007 08:27 |
порт в камере можно попалить, черт ти что на 40 метров кабеля может навестись. Хотя если для себя, то пофиг ![]() |
| 696. КРОКОДИЛ, 14.05.2007 08:59 |
| Так я телезелёный кабель на ланк поставлю а емкость кабеля резисторами погашу, лишь бы сигнал от камеры до пульта прошел и обратно. |
| 697. Pyku_He_oTTyda, 14.05.2007 09:41 |
| КРОКОДИЛ смотря как гасить, LANC выход с открытым коллектором |
| 698. КРОКОДИЛ, 14.05.2007 17:13 |
| Думаю что резистор в полмегаома паралельно RK кабелю больших проблем ланку не создаст а статике будет мешать накапливатся в кабеле, -а ваще это все нужно пробовать. |
| 699. Pyku_He_oTTyda, 14.05.2007 18:43 |
полмегома конечно не создаст да и скорость в ланке маленькая, 9600 всего |
| 700. КРОКОДИЛ, 14.05.2007 18:52 |
| Pyku_He_oTTyda в устройстве будет жить Мега8. A как насчет уровня белого? -предусмотрен он в проекте или нет? |
| 701. Pyku_He_oTTyda, 14.05.2007 22:29 |
| Планируется |
| 702. КРОКОДИЛ, 15.05.2007 05:37 |
Ктонибудь может обьяснить как в VMLABE пиать на Си? Или его както нужно с кодевиженом интегрировать? ![]() |
| 703. joptpd, 15.05.2007 08:08 |
| КРОКОДИЛ почитал тут тебя чувак ты не прав(с) надо действительно со светодиода начинать я сначала делал задержки функцией потом по прерыванию когда я понял как и зачем оно нужно то дальше пошло проще про синтезатор я точно не скажу но управление им ты можеш посмотреть на осцилограме в его даташите у него есть вход Е который перед отправкой даных ты поднимаеш в 1 дальше идет небольшая пауза потом тебе нужна функция в которую ты передаеш некую цифру синтезатор имеет еще 2 входа для клок и даных принцип такой начало_цикла; клок 1 1й_бит_даных клок0 клок 1 2й_бит_даных клок0 .... конец_цикла; вход Е опустить в 0 вот тут тебе пример кода для синтезатора http://pira.cz/plllcd.htm сохраняй через правую кнопку мыши а то там глюк какой то и файл не отдает как зип |
| 704. КРОКОДИЛ, 15.05.2007 09:27 |
| joptpd надо действительно со светодиода начинать Блин, я даже "шапку" к программе не могу написать, изза того что немогу разобратся что куда вписывать. И с интерфейсом симулятора тоже неразберусь. A по уже готовому проэкту сони/сони помигать диодом конечно можно -вот только что это даст? ![]() вот тут тебе пример кода для синтезатора Спасибо! |
| 705. joptpd, 15.05.2007 11:50 |
| смотри файл для си имеет расширение .с сверху идут #define или #include в инклюдах подключают заголовки файлов которые связаны с готовыми библиотекаи компилятора либо если #inclide "dfgfd.h" то етот файл должен лежать в той же папке где и .с файл в нем определяют константы #define если их много если 2-5 то все влезет в .с файл в тот же .х файл пишут прототипы функций правда современым компиляторам етот атавизм не нужен в .с файле потом идут сами функции типа void synth(int ){ тут код функции } потом идут глобальные переменые которые будут доступны из любой фунеции они нужы например для того чебы твой код в обработчике прерывания мог поменять там даные а основную обработку даных надо делать в главной проге потом идут обработчики прерываний если ты их используеш самое главное ето функция main в ней выполняеца весь код например void main(viod){ initports(); initlcd(); ето все один раз выполняеца потом идет цикл while(); |
| 706. КРОКОДИЛ, 15.05.2007 17:55 |
| joptpd У меня VMLab начинает матюкатся при попытке написать вот так: код:Пишет что это все уже вроде как определенно функцией #define#define CH1 PORTB.0 и ругается чтото насчет регистров с первого по тридцать первый. А в кодевижене такая запись прокатывает причем вставленная в любое место Но зато при попытке начать писать програму начинает ругатся на каждую строку А как вообще включить VMLab для работы с СИшными файлами? ![]() |
| 707. joptpd, 15.05.2007 19:04 |
| вм лаб ето симулятор там нет редактора кода для си и нет компилятора ты ему указываеш откомпилированый файл .coff который содержит прошивку и сишный код тогда ты сможеш видеть как выполняеца прога по шагам #define CH1 PORTB.0 #define CH2 PORTB.1 #define CH3 PORTB.2 #define CH4 PORTB.3 //ВХОДЫ ОТ ПЕРЕКЛЮЧАТЕЛЯ каналов #define CH5 PORTB.4 #define CH6 PORTB.5 #define CH7 PORTB.6 #define CH8 PORTB.7 #define TXRX PORTD.2 //ПЕРЕКЛЮЧАТЕЛЬ ПРИЕМ ПЕРЕДАЧА #define PGUN PORTD.3 //ПЕРЕКЛЮЧАТЕЛЬ ГУНов если ты принимаеш даные из порта то надо использовать регистр PIN соответствено пишеш CH1 PINB.0 пиши ето все после инклюдов примерно так #include <tiny2313.h> #include <stdio.h> #define DATA PORTD.4 #define CLOCK PORTD.5 #define LE PORTD.6 тут твои глобальные переменые типа char UART_RxBuf[2]; ############### потом тут обработчики прерываний interrupt [USART_RXC] void usart_rx_isr(void) { unsigned char tmphead; tmphead = ( UART_RxHead + 1 ) & 1; UART_RxHead = tmphead; UART_RxBuf[tmphead] = UDR; } етот код будет срабатывать как только байт будет принять по юарт тогда главная прога в функции main будет прервана переменая UART_RxBuf[tmphead у меня глобальная и к ней есть доступ из главной проги а так же любой другой обработчик прерываний может иметь доступ ########################### если ты использовал таки прерывания то тебе надо включить их глобально // Global enable interrupts #asm("sei") есть еще выключатели локальные ето например в регистре UCSRC выставить опеределеные биты в 1 там есть прерывание для тх и для рх отдельно я вот только выбрал включить рх 1 бит и еще один бит прерывание по рх открой даташит найди етот регистр юарта и посмотри биты выстави в 1 как у меня и переведи бинарное число типа 01001000 в хекс и увидиш 0х06 но для работы с синтезатором тебе не надо никаких прерываний void main(void) { iniports(); initsynth(); initlcd(); while(1){ тут весь твой код обработки нажатий кнопок и посылки в синтезатор например проверить не нажатали кнопка первого канала } закрывающая скобка для функции main } дальше кода нет у тебя наверно возник вопрос типа как определить нажата ли кнопка? короче в цифровой технике входы должны быть подключены либо на землю либо на плюс питания через резистор в нашем случае входы висят на плюсе когда давиш кнопку то происходит замыкание на землю и весь ток течет не в порт а в землю и на входе порта будет 0 как отловить его? в цикле while оторый бесконечный пишеш такой код if(!CH1){ выполнить какой то код } как оно работает? когда кнопка не нажата то на выводе 1 условие if всегда верно если значение НЕ НОЛЬ при помощи ! мы инвертируем условие т.е. кнопка не нажата и в порт идет 1 мы ее и инвертируем в 0 и условие не будет выполняца когда ты нажмеш на кнопку то на порте будет 0 ! инвертирует 0 в 1 и тогда условие будет верно и код выполница когда таких проверок больше 3 то лучше использовать swith case примерно так switch (PORTB){ case 0x01: do_some_shit_1(); case 0x02: do_some_shit_2(); case 0x04: do_some_shit_3(); case 0x08: do_some_shit_4(); case 0x10: do_some_shit_5(); case 0x20: do_some_shit_6(); case 0x40: do_some_shit_7(); case 0x80: do_some_shit_8(); default: nothing_to_do(); } так можно опросить 8 кнопок на одном порту если ни одна кнопка не нажата то выполница nothing_to_do() ето условие не обязательно если тебе надо прервать проверку остальных кнопок после нажатия какой то то делай так case 0x01: do_some_shit_1(); break; после каждого case короче вот мог бы написать еще как прикрутить больше кнопок на один порт и проверять их но будет много сложнее лучше возьми мегу 16 ах да внешние резисторы можно не припаивать их встроили в мк и включаюца они записью единиц в нужные позиции какого то регистра я не помню его ща чето с pullup resistors связаное |
| 708. КРОКОДИЛ, 15.05.2007 19:31 |
| joptpd Спасибо! Щас перевариваю написаное -вечером попробую чего нибудь накропать, -потом отпишусь. я не помню его ща чето с pullup resistors связаное Там в кодевижене напротив каждого бита стоят буковки Т которые можно изменить на P -я так понимаю что Р -это подтяжка -или нет? ![]() |
| 709. Pyku_He_oTTyda, 15.05.2007 23:33 |
| да, от слова Pull Up |
| 710. Dikoy, 16.05.2007 02:41 |
| КРОКОДИЛ Прогу написал: www.dikoy44.narod.ru/prj.zip В общем, работает прога так. Вибираем порт, жмём открыть. Внизу должно появиться сообщение, что порт открыт успешно. Или не успешно. Если успешно, радуемся и продолжаем: Изначально линия RTS порта стоит в 1. Только у СОМа там иверсия, чтоли… В общем, я точно не знаю, какой уровень будет на МК после всех преобразователей. Смотреть надо. Ещё нюанс – при запуске проги линия RTS может дёрнуться. Это нужно учесть. Порт настроен как 4800, без чётности и прочей хрени. Стандартно, короче. Вводим все частоты в поля, жимаем «загрузить». Вводим в герцах, ибо переводить дробные числа из строк в значения это большой гимор в дельфе… Значения из полей ввода преобразуются к числовому виду (в полях они текстовые). Число типа double, то бишь 4 байта, 32 бита. Далее, прога проверяет, все ли значения кратны 12,5 кГц. Если да, то продолжаем. если нет – выдаёт ошибку. Далее, устанавливается низкий уровень на RTS, ждём 100 мС, отправляем в порт число 44. Ждём 200 мС. Проверяем пришедший от МК ответ. Если ответ равен числу 45, RTS возвращается в «1» и сразу начинается передача данных. Она крошит каждое значение на 4 байта, передаёт их в порт паровозом начиная с младшего. Первым передаётся значение трансфера, за ним ресивера. Построчно, начиная с первой строки. Приём данных от МК идёт аналогично: RTS в «0», отправляем код 50. Если МК ответит 51 (на что ему 200 мС), RTS переводится в «1» и прога готова читать данные. Перед передачей в прошивке желательно сделать задержку на пару мС. Данные принимаются так же – по байту, начиная с младшего. Приняв 4 байта прога их склеивает и выдаёт в окошко. Ещё есть кнопы Init и Reset. По нажатию первой в порт отсылается число «1», по нажатию второй число «8». Можно использовать, например, для проверки связи – нажал кнопочку, а МК помигал светодиодиком. Оч. удобно. Признаюсь – прогу не тестировал… Бо лень А учитывая, сколько времени я не работал в дельфе… Могут быть косяки короче. Передать то данные она передаст, а вот с приёмом.. Я там уже не помню, как те функции правильно юзать… Вроде откомпилировалась без проблем…Короче, надо соединять два СОМ порта шнурком и тестить её терминалкой. Написана на делфи7, работает под 98 и ХР, 100%. |
| 711. КРОКОДИЛ, 16.05.2007 03:04 |
| Dikoy Скачал прогу, спасибо! Вобщем открыл -порт открывает и пишет что контроллер не откликнулся вовремя, -что вполне естественно -так как контроллера то и нету! Щас разбираюсь с Си -попробую сам хоть чегонибудь родить Очень помог joptpd ,а то бы я двойного соню еще страниц двести бы пытал! ![]() Добавление от 16.05.2007 03:11: Я так понял что нужно еще MAX232 для согласования уровней? Добавление от 16.05.2007 04:17: joptpd код:Кодевижен ругается на каждую строчку case и на default: nothing_to_do(); -всего девять ошибокUSICR=0x00; А что в скобках на коце строки нужно писать? ![]() Добавление от 16.05.2007 05:20: Вроде вьехал -наверно нужно писать чтото типа case 0x1: CH1(0x2D00); или нет? |
| 712. K_AV, 16.05.2007 09:50 |
| Так joptpd тебе не кусок программы написал (а ты повторил), а шаблон (заготовку), который сам по себе не работает. Просто в таком прядке должны выполняться действия в программе. Вместо do_some_shit_1() должен быть вызов какой-то функции (подпрограммы), или цепочка действий, объединенная в единое целое фигурными скобками. Пока у тебя написано одной строкой do_some_shit_1(), компилятор думает, что это вызов функции. А функции такой он в тексте программы не нашел. Вот и ругается. |
| 713. joptpd, 16.05.2007 10:12 |
| do_some_shit ето твои функции или действия которые надо делать при нажатой кнопке я всю тему не читал не в курсе как ты там каналы хочеш использовать можеш написать функцию отправки частоты в синтезатор и вызывать ее synth(35765) передавая ей некое число заранее пощитаное на бумажке смысл работы синтезатора в том че ты ему посылаеш некое целое число 2 байта как минимум в даташите есть формула и по ней ты вычисляеш ето число switch (PORTB){ я тут специально ошибку допустил думал ты заметиш надо не порт а пин вот возьмем тот пример который я дал с чешского сайта функция отправки 2 байт в синтезатор void PLL_SendW(unsigned int COMM) { DATA_OFF; DLEN_ON; sint i; CLK; for (i=0; i<16; i++) { if (COMM & 0x8000) DATA_ON; else DATA_OFF; CLK; COMM <<= 1; } DLEN_OFF; clk(10); } как видиш тут есть те самые define макросы про которые тебе уже говорили DATA_OFF; опускает в 0 линию даных если она была в 1 поднимаем линию Е DLEN_ON; в 1 для начала работы с синтезатором дальше дергаем линию клок CLK; согласно даташиту на тот синтезатор надо перед подачей даных дергуть 1 раз клок дальше идет самое интересное в цикле передам 2 байта т.е. 16 бит for (i=0; i<16; i++) if (COMM & 0x8000) число 80000 в двоичном коде 100000000 00000000 логическая операция & берем некое число которое идет в синтезатор например 43673 оно же 10101010 10011001 делаем побитное И ето значит 1 и 1 будет 1 1 и 0 будет 0 0 и 1 будет 0 пример 10101010 10011001 100000000 00000000 ---- 100000000 00000000 у нас получилось число 8000 помниш я тебе говорил если в условии if НЕ НОЛЬ то оно верно? вот оно не ноль тогда мы выставляем дату в 1 if (COMM & 0x8000) DATA_ON; если оно было 0 то дату выставляем 0 else DATA_OFF; каждый переданый бит сопровождаеца дерганьем клока для синхронизации дергаем снова клок CLK; теперь еще один важный и интересный момент COMM <<= 1; побитный сдвиг влево на 1 место берем наше число 10101010 10011001 теперь сдвигаем влево на 1 место 01010101 00110010 теперь слева первым у нас стоит 0 а справа на последнем месте всегда будет 0 так мы передали 1 бит осталось циклу еще 15 раз пройтись и передать все нули или единицы по сути у тебя вот есть готовая функция для работы с синтезатором тебе надо только подготовить числа для отправки в ету функцию при первом старте в синтезатор передаеца некое число которое его инициализирует т.к. кроме частоты синтезатор может еще переключать диапазоны и еще всякое там например вот функция инициализации синтезатора void InitPLL() { clk(20); PLL_SendW(0xCC00); //delay(100); PLL_SendW(0xCC00); //delay(100); //PLL_SendW(10700); //delay(100); } как видиш ему сначала надо 20 раз дернуть клок потом 2 раза послать некое число и тогда он готов к приему даных а вот макросы #define DLEN_ON sbi(PORTD,PD3) #define DATA_ON sbi(PORTD,PD4) #define DLEN_OFF cbi(PORTD,PD3) #define DATA_OFF cbi(PORTD,PD4) #define CLK {sbi(PORTD,PD2);_delay_us(1);cbi(PORTD,PD2);} вот так реализована функция которая шлет 20 раз клок void clk(unsigned int c) { int p; for (p=0; p<c; p++) CLK; } вот и все |
| 714. КРОКОДИЛ, 16.05.2007 14:11 |
| joptpd не в курсе как ты там каналы хочеш использовать можеш написать функцию отправки частоты в синтезатор и вызывать ее synth(35765) передавая ей некое число заранее пощитаное на бумажке Не, мне нужно както приписать к каждому каналу свою ячейку ЕЕпром -тоесть брать цыфру из ЕЕпрома и передавать ее в синтезатор, кроме этого туда нужно еще передавать информацию о шаге, а вот шаг уже будет всегда неизменным. |
| 715. joptpd, 16.05.2007 14:42 |
| в кодевижине есть функции для работы с епромом если каналы менять не будеш то сделай вызов функции с готовыми частотами если будеш работать с епромом то там надо указатель использовать в хелпе кодевижина есть пример на одну частоту надо 2 байта в моем примере тоже можно записать 8 или 10 каналов посмотри как там сделано |
| 716. КРОКОДИЛ, 16.05.2007 14:53 |
| K_AV Так joptpd тебе не кусок программы написал (а ты повторил), а шаблон (заготовку), который сам по себе не работает Да протупил я немного. Просто пока в голове это все нескладывается в целую картинку. Я так понял что нужно создать функцию типа EEREAD и писать примерно так:switch (PINB){ case 0x1: EEREAD(НОМЕР ЯЧЕЙКИ); А что это за цифры после case -это что тоже для примера или так должно быть? Добавление от 16.05.2007 14:57: joptpd |
| 717. Dikoy, 16.05.2007 15:06 |
| joptpd можеш написать функцию отправки частоты в синтезатор и вызывать ее Дык соня ему уже написал всё! Там функция: код: Причём пины задефайнены: #define DATA_LINE PORTD.4 #define CLOCK_LINE PORTD.5 #define LE_LINE PORTD.6 #define DATA_LINE_ON DDRD.4 #define CLOCK_LINE_ON DDRD.5 #define LE_LINE_ON DDRD.6 То есть перелать под любой МК и распиновку можно моментом, изменив только дефайны. в кодевижине есть функции для работы с епромом Да просто создать массив: #pragma warn- eeprom long int koefp[16]; #pragma warn+ И всё, пиши в него коеффициенты и читай. Удобно и без вопросов. Только крокодил сейчас начнёт спрашивать, как работать с массивом, а я его снова отправлю к школьному учебнику по Си, где это написано в разделе "структурированные типы данных" ![]() на одну частоту надо 2 байта Не, там полная посылка в синтезатор, это 21 бит. Добавление от 16.05.2007 15:10: Читать так: |
| 718. КРОКОДИЛ, 16.05.2007 15:38 |
| Дык соня ему уже написал всё! Там функция: Так до посылки пока еще дело не дошло ![]() Dikoy #pragma warn- eeprom long int koefp[16]; #pragma warn+ Все я окончательно запутался Пойду читать учебник. ![]() |
| 719. Бэтмэн, 16.05.2007 17:04 |
Ужос. Уж не меньше 1,5 месяцев прошло. А воз и ныне там. Ну Вы и садюги, человека с нуля заставлять в Си въезжать. Заставьте его книжку сперва прочитать. У бедного Крокодила уже заворот мозгов похоже... |
| 720. Dikoy, 16.05.2007 18:28 |
| Бэтмэн Заставьте его книжку сперва прочитать. Вот ты умный, ты и заставь! Его даже учебник по си не заставишь прочесть... Предыдущий пост глянь - открыл бы учебник и понял, что там написано. КРОКОДИЛ #pragma warn- //отключили вонинги (а то компилятор тут матерится, но не по делу) eeprom long int koefp[16]; //в епроме создали массив на 16 элементов типа лонг инт (32 бита). #pragma warn+ //снова включили вонинги. |
| 721. КРОКОДИЛ, 16.05.2007 19:27 |
| Dikoy Дык соня ему уже написал всё! Там функция: Компилятор выдает 24 ошибки! -или я опять чегото не туда вставил? :spyкод:/***************************************************** |
| 722. Apex_t, 16.05.2007 20:20 |
Dikoyкод: Он не ругается а ПРЕДУПРЕЖДАЕТ и именно по делу ! Он сообщает что вы cоздали массив в EEPROM и не присвоили его элементам значения. Т.е. помагает избежать ошибок или недоразумений. "Вонинги" не мешают успешной компиляции. Если написать с присвоением (инициализацией переменных) как рекомендовано на стр. 5 курса - вот так: код:то "Вонингов" не будет. Добавление от 16.05.2007 20:23: Бэтмэн Добавление от 16.05.2007 20:27: Dikoy |
| 723. КРОКОДИЛ, 17.05.2007 00:04 |
ALL. Может ктонибудь толком сказать почему кодевижен по всем выражения типа DATA_LINE = data_mid & 0b10000000; и LE_LINE = 1; , CLOCK_LINE = 0; дает ошибку типа неправильное выражение -ведь они у меня все задефанены? Cначала думал что кодевижен кривой -переустановил -опять тоже самое. ![]() |
| 724. Apex_t, 17.05.2007 01:56 |
| Наверно код скопирован с интернет страницы - возможно кодировка символов виновата. Возьмите исходник их архива к задаче или скопируйте обозначения типа DATA_LINE из строчки дефайн и вставьте в текст программы где написано DATA_LINE = Либо наберите заново с клавиатуры. Добавление от 17.05.2007 02:15: --- |
| 725. КРОКОДИЛ, 17.05.2007 02:43 |
| Apex_t Наверно код скопирован с интернет страницы - возможно кодировка символов виновата. Возьмите исходник их архива к задаче или скопируйте обозначения типа DATA_LINE из строчки дефайн и вставьте в текст программы где написано DATA_LINE = Либо наберите заново с клавиатуры. Я так и делал! Разобрался уже! Оказывается она брыкалась изза того что концовци небыло код:Тоесть отсутствовали значения выражений, А чего теперь дальше то делать, какую функцию и куда добавлять конкретно? А то я пока разобрался с этими ошибками у меня полное несварение мозгов началось! -целые сутки за компом просидел! код:Вот посмотри я там в дефанах константу обспечивающую шаг задефанил -правильно так будет или нет? И чего дальше делать буфер создавать или чтото другое?/***************************************************** ![]() Добавление от 17.05.2007 02:52: Я правда забыл UART включить в визарде и выходы для портов выставить-не обращай внимания -потом переделаю заново, -мне сейчас главное понять как все друг за друга прицепляется и чего куда и самое главное как переносится именно для синтезаторов! P.S. Правда коментарии на украинском языке получились но понять можно Добавление от 17.05.2007 03:28: Apex_t |
| 726. joptpd, 17.05.2007 09:49 |
| константу смотри в даташите там будет такая типа таблицы где прописаны номера битов например вот http://www.peter-geisler.de/datasheet_SAA1057.pdf открой на странице 4 и 5 там есть буквы всякие и рядом 0 или 1 каждая буква обозначает некий бит который отвечает за какую то функцию для примера возьмем переключение ам и фм сделаем дефайн #define MODE_AM #defile MODE_FM теперь идем на страницу 5 и смотрим где там у нас фм мы видим регистры а и б регистр а полностью занят под частоту регистр б для функций предположим че мы можем посылать регистр б отдельно от а длина регистра б 16 бит посему мы берем 2 байта под второй регистр регистр а имеет на последнем месте 0 а регистр б 1 так синтезатор наврно их различает теперь смотрим снова где ам фм 1 ето фм 0 ам #define MODE_AM 0b10000000 00000000 //0x8000 #defile MODE_FM 0b11000000 00000000 //0xc000 теперь сделаем переменую для регистра б int data_b = 0x0000; включаем фм data_b = data_b | MODE_FM; включаем ам data_b = data_b & MODE_FM; вспомни про битовые операции почитай про них можно еще круче сделать #defile TOGGLE_MODE data_b^=1<<14; теперь при нажатии на кнопку ам\фм ты просто вызываеш дефайн TGGLE_MODE работает ето так ^ означает xor есть был 0 то станет 1 если был 1 то станет 0 дальше я двигаю влево до 14 бита data_b^=1<<14 немного непонятно но оно короче тоже самое можно записать так data_b= data_b^ (1<<14); теперь посмотрим дальше только тут ты уже сам попробуй дальше идут комбинации битов например т0 т1 т2 т3 пин 18 являеца тестовым по нему ты с помощью мк можеш определить был ли захват частоты и приемник настроен или нет например нужно для автоматической настройки делаем дефайны #define MODE_LOCK бит т3 всегда 0 т2 выбирает опорную частоту 32 или 40кгц и выдает на 18 пине т1 всегда 0 т0 выход фазового детектора когда частота захвачена там будет 1 если нет то 0 в табице даны комбинации битов мы выбрали комбинацию битов такую че выход 18 использовать как индикатор настройки значит нам надо выставить т-биты так т3 т2 т1 т0 0 1 0 1 теперь запишем все число полностью нулями исключая 4 места под ети биты (первый бит слева всегда 1) #define MODE_LOCK 0b10000000 00000101 // 0x8005 теперь нам перед отправкой в синтезатор применить все биты т.е. выставить в 1 или 0 тут применяем логическое ИЛИ т.к. у нас изначально было 0 то при ИЛИ 0 станет 1 а если была уже 1 то она там и будет data_b = data_b | MODE_LOCK; ищи в даташите на твой синтезатор какие биты отвечают за делитель и так же делай дефайны или сразу выставляй нужный бит в 1 если делитель не будеш менять почитай про битовые операции вот тебе калькулятор который наглядно покажет работу с битовыми операциями http://slil.ru/24379487 |
| 727. K_AV, 17.05.2007 10:26 |
| ну, мамочка в своем духе... даже ссылку на чужой ресурс дал не туда, где ссылки на книги лежат (первый пост ветки), а на свой ответ в той ветке, в котором из всех ссылок осталась одна, зато есть его реклама. IMHO - это уже к доктору. |
| 728. An_private, 17.05.2007 10:40 |
Chudik, ну забань ты этого м... по IP. Он, по моему, со своим avr123 уже всех достал... ![]() |
| 729. K_AV, 17.05.2007 10:51 |
| КРОКОДИЛ "Скачал, посмотрел - для меня пока это шибко заумная книга. И потом книги дают обще представление, а какогото конкретного случая в них и ненайдешь" Как раз эта книга вроде неплохая, подробная (и автор для AVR известный). И на русском языке (что для тебя важно). Просто смирись с мыслью, что вот так, с наскока, целую новую для тебя отрасль (микроконтроллеры) тебе все равно не поднять. Учиться придется, хоть и тяжело. Судя по всему, начальный уровень в этой области полностью нулевой, а потому: 1) Основы цифровой техники (чтобы понимал и разницу между И и ИЛИ, и как засланные в микросхему байты управляют ее работой). 2) Основные понятия о микроконтроллерах вообще (это как раз просто, при наличии пункта 1). 3) Основы программирования (на уровне понятий, безотносительно к конкретному языку) - это тоже в общем немного, но требуется усвоить устойчиво. 4) Учебник по тому же C (но до уровня устойчивого понимания и запоминания). 5) Освоение какой-нибудь одной среды разработки (в ней будет удобно в симуляторе примеры крутить, чтобы разобраться лучше). При везении в выборе учебника пункты 3 и 4 объединятся. Заманчиво, конечно, взяв чужое подходящее, по-быстрому начать получать прибыль. Но в этом направлении далеко не уйдешь. При повторении (модификации) чужих разработок ты еще и между разными типами МК и разными языками программирования дергаешься, не имея опыта ни в одной. И все равно потребуются модификации даже того синтезатора, который общими усилиями тебе практически уже дали. А без понимания "шаг вправо/влево - расстрел (веревка/мыло)". |
| 730. КРОКОДИЛ, 17.05.2007 16:35 |
| joptpd константу смотри в даташите Для меня даташит на LMX2316 еще боле непонятен чем даташит на MK Особенно то что касается битов микросхемы. А английский для меня все равно что китайский! С даташитом не могу разобратся особенно непонятно почему на таблицах изображено все время различное количество битов, хотя речь шла о 21 битной системе. см рис. За калькулятор спасибо -очень полезная штука ![]() например вот http://www.peter-geisler.de/datasheet_SAA1057.pdf открой на странице 4 и 5 Не так я ище больше запутаюсь Общюю функцию передачи в синтезатор уже написал соня/соня а вот как и что к ней прикрутить я пока путаюсь Тут мне непонятно как на СИ сделать буфер и т.д.Добавление от 17.05.2007 17:04: K_AV Добавление от 17.05.2007 17:08: А вообще если по нормальному, то взятся за изучение програмирования мне нужно было еще лет 20 назад -когда еще в голове было свободное место Добавление от 17.05.2007 17:16: joptpd |
| 731. joptpd, 17.05.2007 17:23 |
| скачай прогу National is proud to present this software for programming all of National's RF wireless products. This is the software that can be used to program a PLL via the parallel port of a computer. Aside from this function, it is also a useful tool in addressing questions concerning how to program the part, because it shows the bits that are actually sent. This can also be useful in determining counter values and prescalers. http://www.national.com/appinfo/wireless/files/codeloader_setup.exe 3мб она покажет тебе все нужные биты не забудь только выбрать в меню нужный тебе синтезатор прога управляет им от лпт порта по поводу програмирования вообще тебе тут правильно говорят я учился методом тыка не имея никаких книжек и не зная английского был только словарик карманый начал в 92 году и до сих пор прошел от битов на листочке до скриптовых языков но програмировать так и не умею толком короче не не всем ето дано КРОКОДИЛ Тут мне непонятно как на СИ сделать буфер и т.д. char buffer[10] обычный масив |
| 732. КРОКОДИЛ, 17.05.2007 17:31 |
| joptpd короче не не всем ето дано Так и я о томже -но все равно нужно стремится! скачай прогу Спасибо! -ночью скачаю. обычный масив Так а где его назначать? - там где дефайны? |
| 733. An_private, 17.05.2007 17:35 |
меня уже начинает мучать вопрос - сколько можно мучаться фигней, пытаясь освоить одновременно си, ассемблер, основы цифровой техники, микроконтроллеры pic И avr, а также dds синтезаторы частоты. Я ничего не забыл? Может все-таки как-нибудь по очереди? ![]() |
| 734. Dikoy, 17.05.2007 17:44 |
| Apex_t Он сообщает что вы cоздали массив в EEPROM и не присвоили его элементам значения. И чего теперь? Хош сказать, не заработает? ![]() КРОКОДИЛ С даташитом не могу разобратся особенно непонятно почему на таблицах изображено все время различное количество битов, хотя речь шла о 21 битной системе. 21 бит - это посылка. То есть то, что ты передаёшь в синтезатор. А точнее в один из его регистров, которых там 3. Эти 21 бит склеемы из нескольких слов. Например, первые два бита определяют адрес целевого (какой из 3) регистра, куда посылка предназначается. Далее идут ещё биты что либо определяющие. Твоя задача - вычислить значения этий слов для своих частот, потом в программе склеить их в 21 битную посылку и запульнуть в синтезатор сониной функцией. Т.к. его функция работает не с 21 битными посылками а с 3*8 бит (три байта), то эту 21 битную посылку придётся ещё порезать на 3 части. Как в моей функции делается ![]() Добавление от 17.05.2007 17:46: An_private |
| 735. K_AV, 17.05.2007 17:54 |
| КРОКОДИЛ Насчет разного количества бит. В даташите на LMX2316 написано, что в микросхему (во всех случаях) передается 21 бит. Но внутри микросхемы эта информация может распределиться на 3 "получателя": 14-битный регистр делителя опорной частоты (из опорного кварца получишь свой шаг сетки), 18-битный регистр управления частотой выходного сигнала синтезатора (этим делителем ты и будешь выбирать, какая у тебя будет рабочая частота) и 18-битный функциональный регистр (управление всем остальным в работе микросхемы синтезатора). В какой из "получателей" попадет информация, переданная в микросхему - определяется последними (младшими, т.к. передавать данные в микросхему требуется сот старших к младшим) 2 битами этой посылки (C1, C2). В табл. 1.1.1 расписаны состояния делителя опорной частоты (коэфф.деления от 3 до 16383, коэфф. менее3 запрещены). 18-битный регистр управления выходной частотой разделен на 2 части (управляет 2 счетчиками): 5-разрядный счетчик SWALLOW (я этого термина не знаю, что-то насчет "глотать" ) и 13-разрядный делитель выходной частоты. Таблицы 1.2.1, 1.2.2.18-разрядный регистр управления - там у отдельных групп и даже отдельных бит своя "область ответственности". Таблицы 1 и 2 в разделе 1.3. Судя по 1.2.3, 13-разрядный счетчик наращивает частоту более крупными "шагами" (по формуле в п.1.2.3, для вычисления частоты он домножается на коэффициент 32), а 5-разрядный - шажками по "1" (ни на что не домножается), типа "точной подстройки". |
| 736. joptpd, 17.05.2007 17:54 |
посмотрел даташит ![]() тебе для чего такой синтезатор нужен? для простого приемника уж больно он крут про 21 бит все верно 2 бита там самые главные они образуют 4 комбинации для 3х регистров и еще одна комбинация для чего то там закрыл уже его тебе еще надо знать какие опции синтезатора тебе нужны от них зависят все остальные числа в регистрах |
| 737. K_AV, 17.05.2007 18:08 |
| joptpd Дык трансивер же (связной приемо-передатчик). |
| 738. КРОКОДИЛ, 17.05.2007 18:18 |
| joptpd тебе для чего такой синтезатор нужен? для простого приемника уж больно он крут Не ето для встраивания в устаревшие автомобильные радиостанции, причем диапазоны у них могут быть разными а синтезатор один, сменными будут только ГУНы выполненные в виде отдельных модулей, - ну типа универсальный с прицелом на будущее, а именно эта микросхема взята из соображений большого запаса по частоте, возможности сделать почти любой шаг типа 12,5кгц, ну и естественно как наиболее доступная для меня и с более менее доступной ценой. Хотя я предпочел бы чтонибудь в DIP корпусе, но пойдет и так А вообще еще хочу после синтезатора сделать себе на базе этих микросхем генератор стандартных сигналов до 1500мегагерц - цифровой естественно. ну и частотомер с таким же диапазоном, но это уже после того как разберусь хоть чучуть с програмированием.Добавление от 17.05.2007 18:38: An_private Добавление от 17.05.2007 18:54: Dikoy Добавление от 17.05.2007 19:56:
|
| 739. joptpd, 17.05.2007 23:03 |
| КРОКОДИЛ А еще ненашел на клавиатуре знак разделения выражений -как его набирать то? | такой? я не знаю у меня клавиатура нотыбучная и немецкая много различий шифт надо держать константы есть переменые а есть дефайны дефайны ето просто для удобочитаемости кода при компилировании они будут заменены выражениями константы ето уже неизменяемыпе переменые обычно строки для вывода на индикактор типа const или flash char someshit[]="aaa"; дефайны пишут до мейн глобальные переменые тоже впрочем никто не мешает написать дефайн внутри мейна или функции ето не синтаксис языка посему ошибки не будет логический не - обычный восклицательный знак |
| 740. КРОКОДИЛ, 18.05.2007 01:50 |
| K_AV Так ничего и непонял в даташите -непомог даже переводчик -вобщем вроде понятно а конкретно применительно к делу -темный лес! Зато програма joptpd и калькулятор очень помогли -появились первые проблески ![]() Добавление от 18.05.2007 02:04: joptpd Добавление от 18.05.2007 03:41: Dikoy Добавление от 18.05.2007 03:46: Кажется добавить нужно 0х100000 -правильно я соображаю или нет? |
| 741. joptpd, 18.05.2007 11:18 |
| у тебя длина должна быть 21 бит не больше и не меньше только тебе надо все равно будет переменую в 32 бита т.е. 4 байта long int (3 байтных не бывает если мне не изменяет память) но цикл фор должен быть от 0 до 20 если тебе надо выставить какие то биты в 1 то делай так например твоя переменая freq и она 32 бита длиной причем тольк 21 бит из них полезный приклеиваем старшие биты (они слева и обозначены msb) сначала создадим маску 00000000 00011000 00000000 00000000 оно же 0х00180000 потом делаеш так freq|=0х00180000; теперь возьми калькулятор и попробуй сделать тоже самое при помощи сдвига влево или вправо в калькуляторе есть функция OR могу посоветовать еще один калькулятор http://www.hexelon.com/kalkulator/index_en.php в настройках ты можеш утащить ненужные кнопки с него и поставить нужные тебе типа hex bin or xor и все такое например пишеш bin(00011000) а он тебе показывает либо в десятичном либо в хексе вверху справа выбери нужную тебе систему счисления и еще много производителей вссяких компонентов предлогают софт который может тебе посчитать все необходимые детали предложить готовые схемы сгенерировать начальный код или наборы даных |
| 742. Dikoy, 18.05.2007 11:43 |
| КРОКОДИЛ Так а как тогда обращатся к вполне конкретной ячейке к 5 например если она непронумерована? Она не не пронумерована, в ней нет начального значения. Т.к. ты их туда будешь писать, в принципе, тебе пофиг. Ну сделай, конечно, правильно, как соня советовал, но на работу это не должно сказаться. Массив, это в принципе пронумерованная структура. Считай, таблица. Бывает одномерный (в одну строку) или двумерный (таблица). Пользуешь какой удобней. тот же вопрос -где его писать? Там же, где объявляешь глобальные переменные. Потом ппросто прользуешь в любом месте программы как обычную переменную, просто указывая в квадратных скобках порядковый номер элемента массива. это обычнй восклицательный знак на клавиатуре? Ага. А еще ненашел на клавиатуре знак разделения выражений Не на всех он есть... Придётся копировать из какой нибудь программы символ и вставлять Или заменить знак строчкой or. Насколько помню, они равнозначны.Добавление от 18.05.2007 12:11: КРОКОДИЛ код: Добавление от 18.05.2007 12:13: КРОКОДИЛ Добавление от 18.05.2007 12:24: То есть, посчитал в калькуляторе значение. например, 134В81. Вставил в виндозий калькулятор, преобразовал к десятичному 1264513. Вставил в мою прогу, залил в МК. В МК создаёшь массив не лонг-инт на 16 элементов, а char на 48 элементов. То есть записываешь в память не склееные, а раскрошеный по 8 бит значения. А потом знай только, давай каждый три значения массива сониной функции: |
| 743. K_AV, 18.05.2007 13:14 |
| КРОКОДИЛ Как же ты синтезатор применять собираешься, если его описание непонятно... Что конкретно в даташите не понятно? Просто переводить сплошь все 19 страниц (ладно, 12 - если отбросить электрические характеристики и корпусирование) - многовато получится. Лучше - конкретные места смотреть (а может, и не в непонимании перевода вопрос?). |
| 744. КРОКОДИЛ, 18.05.2007 13:28 |
| joptpd могу посоветовать еще один калькулятор http://www.hexelon.com/kalkulator/index_en.php Спасибо -скачаю. Dikoy Ты вручную то же самое насчитал? Ну конечно а какже иначе?Вот пример "равномерного размазывания" 12 бит по двум байтам. То есть по 6 битв байте: Щас пытаюсь все это переварить! ![]() Добавление от 18.05.2007 13:35: K_AV |
| 745. КРОКОДИЛ, 19.05.2007 08:01 |
| Dikoy Вот пример "равномерного размазывания" 12 бит по двум байтам. То есть по 6 битв байте: Ничё не понял! -пиШешь для меня как для програмиста с двадцатилетним стажем Незабывай что я полный Вот написал буферvoid data_bufferiz (void){ QQ -это неизвестный делитель частоты которая придет потом с уарта. Посмотри все ли там правильно, особено мне непонятно насчет сдвигов больших чисел в регистре N - ничего там не запутается? - вобщем посмотри внимательно, а еще не могу сообразить как состыковать этот буфер с сониной функцией??? ![]() Добавление от 19.05.2007 08:16: Щас персчитал лучше вот так сделать :BUFFER = (REGN*4 | 0x100001); |
| 746. Dikoy, 19.05.2007 18:07 |
| КРОКОДИЛ Ничё не понял! Там же нарисовано, как меняется структура байт в квадратных скобочках ![]() byteoutL = (spiL & 0x3F); // [0][0][D5][D4][D3][D2][D1][D0] Операция И с числом 0x3F очищает старшие два бита (делает их нулями) причём результат копируется в переменную byteoutL, а spiL не меняется. Если мы хотим, чтобы результат остался в spiL, то, логично, пишем: spiL = (spiL & 0x3F); Или, ещё проще: spiL &= 0x3F; byteoutH |= 0x80; Логическое ИЛИ переменной byteoutH с числом 0x80. Эквивалентно записи byteoutH = byteoutH | 0x80; Делает старший бит единицей. Такое же "или" с упоминавшемся 0x3F сделает оба старших бита единицами и т.д. byteoutH = ((spiH & 0x0F) << 2) | (spiL >> 6); // [0][0][D11][D10][D9][D8][D7][D6] Результат логического И переменной spiH с числом 0x0F, сдвинутый на два бита влево осуществляет логическое ИЛИ с результатом сдвига spiL вправо на 6 бит. Результат присваивается byteoutH. Вот и вся любоффь. (с) Вот написал буфер Ужос ![]() Сначала пробовал вылелять исправления, потом надоело... код: Добавление от 19.05.2007 18:09: С выделениями |
| 747. Apex_t, 19.05.2007 19:11 |
| joptpd ^ означает xor есть был 0 то станет 1 если был 1 то станет 0 Нет конечно. КРОКОДИЛ 5-разрядный счетчик SWALLOW Да у меня промт перевел ЛАСТОЧКА а в скобках глотать И в задаче 12 не сказано про 5-ти битный счетчик по-русски... Вот облом-то ! Dikoy Такое же "или" с упоминавшемся 0x3F сделает оба старших бита единицами Нет конечно. |
| 748. КРОКОДИЛ, 19.05.2007 19:30 |
| Dikoy переменные ДОЛЖНЫ быть по 8 бит!!!!! Так а как записать что они по 8 бит? /*А больше сдвигать разьве не надо? - просто строчка data_hi = (BUFFER >> 16); при копировании потерялась ![]() /*А далее у тебя ещё два раза перепризваиваются переменные и ничего не происходит. A что должно происходить? Обьясни же хотябы. Опять же, не обнулил неиспользуемые переменные data_*** А как их обнулять? -просто все по очереди приравнять к нулю типа data_low = 0; а дальше уже писать data_low = BUFFER ; Сюда внедряем сонину функцию. */ data_to_synt (); Так что просто дописать ее в конце буфера и все? Не с такими успехами я эту програму буду писать лет 20~30! ![]() Добавление от 19.05.2007 19:36: Apex_t |
| 749. Dikoy, 19.05.2007 19:53 |
| Apex_t Такое же "или" с упоминавшемся 0x3F сделает оба старших бита единицами Нет конечно. Тьфу, блин, ошибся. ИЛИ с числом 0хC0. А ты, как всегда, многословен! КРОКОДИЛ Так а как записать что они по 8 бит? Так посмотри типы переменыых! char - это и есть переменная 8 бит. int - 16 bit. long int - 32 бита. unsigned означает, что переменаая беззнаковая, то есть может быть только положительной. для char это десятичные значения 0..255. Если написать signed, то переменная станет знаковой. При этом её диапазон уменьшится вдвое, т.к. старший бит отводится на знак. Для char диапазон станет -127...+128 (127 по тому, что ещё есть ноль). А как их обнулять? -просто все по очереди приравнять к нулю типа data_low = 0; а дальше уже писать Да, т.к. при этом ты очищаешь их от предыдущих значений. Так что просто дописать ее в конце буфера и все? На то она и функция, чтобы написать её один раз в начале программы, а потом тыкать куда хош ![]() Обычно в виде функций оформляют наборы часто используемых действий, чтобы не копировать их 100 раз по всей программе. Кстати, в CVAVR это даже приводит к уменьшению объёма кода. с такими успехами я эту програму буду писать лет 20~30! Ничё, тяжело в учении... ![]() КРОКОДИЛ Так в даташите же ничего про твою 12 страницу ненаписано! -почему -непорядок! Ить циц! Не подскаживай человеку новое поле боя! Побереги нежных буржуев! ![]() |
| 750. КРОКОДИЛ, 19.05.2007 20:04 |
| Dikoy с такими успехами я эту програму буду писать лет 20~30! Ничё, тяжело в учении... Тока она к тому времени мне уже не понадобится .......Добавление от 19.05.2007 20:11: Dikoy |
| 751. Dikoy, 19.05.2007 20:27 |
| КРОКОДИЛ Тока она к тому времени мне уже не понадобится ....... Да ты уже стелал всё. Тебе рабуты на 2 дня осталось с перекурами... Я ж говорил - если так сложно вкурить, как считать содержания регистров, тупо загоняй в МК результаты из калькулятора. И нехай пашет ![]() |
| 752. КРОКОДИЛ, 19.05.2007 22:28 |
| Dikoy Да ты уже стелал всё. Тебе рабуты на 2 дня осталось с перекурами... Я ж говорил - если так сложно вкурить, как считать содержания регистров, тупо загоняй в МК результаты из калькулятора. И нехай пашет Так с регистрами разобрался уже, еще переключатель писать- непредставляю даже как , еепром, и нужно еще сделать чтобы на передау была одна частота а на прием другая, а USART - вообще темный лес и врядли я смогу склеить это все вместе! -запутаюсь в скобках и всяких while ![]() |
| 753. Dikoy, 20.05.2007 00:18 |
| КРОКОДИЛ еще переключатель писать- непредставляю даже как Опрашиваешь лапки порта на предмет появления единички. Чтобы отличать, новое это значение или старое, заводишь переменную, где хранишь значение последнего выбранного канала. Найдя на лапе "1" (или ноль, не суть), проверяешь, изменённое это значение или старое. если старое, идёшь дальше, новое - для подавления дребезга или ожидания, пока юзер провернёт ручку дальше, ждёшь милисекунд 50, снова проверяешь лапу, если она по прежнему в том же уровне, значит ОНО! Бугага! Перезаливаем синтезатор ![]() Можно и проще - если у тебя переключатель на одном порту, считывать этот порт целиком и смотреть, какая там цифра. Будут значения кратные двойке, типа 1, 2, 4, 8 и т.д. Главное знать, какое значение какому контакту соответствует - это уже по твоей схеме видно. Еепром тебе уже расписали - обычные переменные, только в епром. Чё непонятного то? ![]() Как только купишь книжку и прочитаешь страничку про массивы, станет всё понятно. Например, первая ссылка в гугле: http://www.opennet.ru/docs/RUS/bogatyrev/gl_2.html Вторая ссылка, но по двумерным массивам: http://ipg.h1.ru/lessons/ci/les53.html и нужно еще сделать чтобы на передау была одна частота а на прием другая Ну и перезаливай синтезатор каждый раз. Там же операция записи длится микросекунды... а USART - вообще темный лес Ну ты себя и напугал Спишь теперь с фонариком? ![]() Тебе же визард уже все функции UART нагенерил. Знай только, пользуй. Завтра подробней попробую написать. Сейчас спать... Добавление от 20.05.2007 00:25: Вот, вообще по твоей задаче: Добавление от 20.05.2007 00:28: Только на типы данных не очень смотри (char, int, float и т.д.), бо странички писаны для Си для компьютера, а в этом Си типы другие, хоть и называются также, нежели в AVR С. В остальном информация правильная и синтаксис массива в коде-вижне будет таким-же. |
| 754. Apex_t, 20.05.2007 00:47 |
| Dikoy неужели так сложно самому залезть в гугль? Этож САМОМУ надо лезть... конечно трудно. Всегда найдутся добрые люди и дадут готовое. Dikoy странички писаны для Си для компьютера, а в этом Си типы другие, хоть и называются также И страница "Си для МК AVR" не досягаема ... Беда. |
| 755. Dikoy, 20.05.2007 00:58 |
| Apex_t И чего ты предлагаешь? Кинуть земноводное? Думаешь это что-нибудь изменит и он полезет по гуглям?Хорошо хоть так начал разбираться, глядишь, ещё пару недель и допишет ![]() Вообще, начинающие часто не умеют пользоваться поисками (надо же знать, что ишешь). Да и начать с нуля непонятную тему, да ещё вдолбив себе, что это сложно, не просто... |
| 756. КРОКОДИЛ, 20.05.2007 03:11 |
| Apex_t И страница "Си для МК AVR" не досягаема ... Беда. Ты хоть сам то его его читаешь? -хоть иногда? ![]() a=4;Эта сколько ж надо водки сожрать чтоб такое понять??? ![]() |
| 757. psnsergey, 20.05.2007 08:30 |
| КРОКОДИЛ Эта сколько ж надо водки сожрать чтоб такое понять??? А что сложного? если написано b++, то переменная и инкрементируется на 1 ПОСЛЕ вычисления выражения справа от знака равенства и присвоения переменной слева от сего знака. Т.е. будет потом a==7, а b==8. Если бы было написано a = ++b; то в обоих было бы по 8. СИ учи СНАЧАЛА. Выдели неделю и учи ТОЛЬКО СИ. Не сразу Москва строилась. ![]() |
| 758. КРОКОДИЛ, 20.05.2007 12:15 |
| psnsergey КРОКОДИЛ Взять значение переменной b присвоить его переменно A это как понять??? Чтото я в Си ненашел ниичего про переменное присваивание ![]() |
| 759. Apex_t, 20.05.2007 12:17 |
| КРОКОДИЛ Apex_t И страница "Си для МК AVR" не досягаема ... Беда. Ты хоть сам то его его читаешь? -хоть иногда? Я это знаю, а узнал из книг. КРОКОДИЛ Эта сколько ж надо водки сожрать чтоб такое понять??? Водка не поможет наверняка. Нужно просто взять бумагу и ручку и проделать примеры. Кроме того вы не обязаны это использовать, используйте простые арифметические операции с разделением скобками. Так в курсе и советуется. А эти операции описаны чтоб читатель мог понять их в стретив в примерах других программистов. |
| 760. Dikoy, 20.05.2007 13:50 |
| КРОКОДИЛ Кстати, кнопу передача/приём подключи лучше к одному из прерываний. Например, INT1 (PD3). Так будет лучше, т.к. позволит в будущем переключаться по прерыванию. Короче про UART. Визард тебе должен был нагенерить такую настройку // USART initialization // Communication Parameters: 8 Data, 1 Stop, No Parity // USART Receiver: On // USART Transmitter: On // USART Mode: Asynchronous // USART Baud rate: 4800 UCSRA=0x00; UCSRB=0x18; UCSRC=0x06; UBRRH=0x00; UBRRL=0x3A; В ДШ нарисованы две функии (их в твоей проге нужно объявить до мейн, есно): код: И всё! Чтобы передать данные просто пишешь: USART_Transmit( твоя_переменная_типа_char ); Например, хочешь слить в UART свою епром. Тебе нужен цикл, кторый будет отправлять в порт каждый раз новый элемент массива. И того: Объявляем переменные (массив уже объявлен и забит в епроме). код:И всё! В UART будут передаваться элементы массива с индексами i, а i, как мы уже выяснили, будет увеличиваться на 1 при каждом проходе цикла. То есть цикл последовательно сгрузит в UАRT весь массив из епрома. Теперь про приём. В той же ДШ есть функция приёма: код: Применяем так: твоя_переменная_типа_char = USART_Receive(); Одна тонкость - программа будет сидеть тут иждать, пока не придёт данные. Т.к. цикл while крутится, пока верно выражение в его скобках. А там ясно написано: крутиться тут пока данные НЕ пришли (восклицательный знак видим?). Чтобы этого избежать, делаем проверку IF - ом, т.к. if проверяет только один раз, и если выражение не верно, идёт дальше. То есть, пишем: код:Эта строчка проверяет флажки UARTа именно на предмет ПРИХОДА данных (заметь, восклицательного знака уже нету) и если они пришли, заходим в if и уже там можем что-то принимать функцией USART_Receive(). То есть, если выражение в скобках ИСТИНА, то есть логическая 1 полученаая из логического И бита UCSRA и единички, то есть, грубо говоря, если бит UCSRA (а это флажок прихода данных) установлен. Например, стоит поначалу, проверить, что пришло - запрос на чтение или запись (смотрим ман к моей проге), отвечаем программе соответственно, а далее уже известным нам способом - в цикле - либо читаем, либо пишем епром ![]() Чтобы все эти функции заработали надо скачать и подключить сонину беблиотеку заголовков m8_128.h с его сайта, т.к. там прописаны абревиатуры для всех битов, которые используются в функциях. Подключать как любой хидер: #include <m8_128.h> |
| 761. Apex_t, 20.05.2007 14:15 |
| Dikoy Чтобы все эти функции заработали надо скачать и подключить сонину беблиотеку заголовков m8_128.h с его сайта, т.к. там прописаны абревиатуры для всех битов, которые используются в функциях. Подключать как любой хидер: #include <m8_128.h> Только у него то не МЕГА !!! А мой хидер для мег с 8 до 128 ! Зачем придумывать УЖЕ существующие в CVAVR функции ??? // Standard Input/Output functions #include <stdio.h> putchar('R'); // отправить символ R putchar(temp); // отправить содержимое переменной temp temp = getchar(); // принять символ в переменную temp пример - proavr.narod.ru/z5.htm - там и буфер есть. Добавление от 20.05.2007 14:17: Dikoy |
| 762. psnsergey, 20.05.2007 14:19 |
| КРОКОДИЛ Взять значение переменной b присвоить его переменно A это как понять??? По некому адресу в памяти (компилятор о нём знает, а для тебя это переменная b) сидит число; команда процессора берёт это число в регистр и пересылает оттуда по адресу в той же памяти (ОЗУ), в котором находилось (переписываемое сейчас "поверх") число, обозначаемое переменная a. Потом процессор берёт регистр, инкрементирует и пересылает обратно по адресу переменной b. |
| 763. Dikoy, 20.05.2007 14:51 |
| Apex_t Зачем придумывать УЖЕ существующие в CVAVR функции ??? Затем, что: Dikoy Одна тонкость - программа будет сидеть тут иждать, пока не придёт данные. Да и понятней ему так. Только у него то не МЕГА !!! А мой хидер для мег с 8 до 128 ! Тюфу блин! Запутали вы меня оба У одного мега, у другого тинька... |
| 764. КРОКОДИЛ, 20.05.2007 16:15 |
| Dikoy Кстати, кнопу передача/приём подключи лучше к одному из прерываний. Например, INT1 (PD3). Дык в как эту кнопку приписать к програме и выделить ей свои ячейки еепрома? У одного мега, у другого тинька... Так а чё теперь делать? твоя_переменная_типа_char = USART_Receive(); Какая именно переменная? А что писать в сони/сониной функции там где у него тэстовые значение написанны? -что вместо них? -Не так не пойдеть! -Запутали меня окончательно! Давай по порядку - во всем должен быть порядок -а то у меня в голове все свалено в одну кучу! К вечеру попробую написать исходник и выложу а тогда прокоментируешь.Ты ж незабывай что у меня вообще нет опыта в написании програм тем более еще с таким количеством циклов! Добавление от 20.05.2007 16:19: КРОКОДИЛ |
| 765. Dikoy, 20.05.2007 19:23 |
| КРОКОДИЛ Дык в как эту кнопку приписать к програме и выделить ей свои ячейки еепрома? А нафига ей ячейка епрома? По её нажатию трансивер переключается приём/передача, так? То есть, тебе нужно быстренько отработать нажатие и залить регистр трансивера. Вот для этого и нужно прерывание. В принципе, можно и без прерывания, но лучше такую возможность предусмотреть.А переключателю пофиг. Никто ведь не умрёт, если девайс среагирует на переключение не мгновенно, а через 10 мС ![]() Тем более дребезг надо ещё подавить, то есть задержку ввести. Какая именно переменная? ДА ЛЮБАЯ! Хучь элемент массива с выбраным индексом, хучь какая-нить переменная а-ля temp. Не суть. Но фишка в том, что если ты не считаешь UART быстро, то следующее значение затрёт предыдущее. По этому его надо читать сразу по приходу данных. Так а чё теперь делать? Да ничего, посмотреть номера битов в регистрах в ДШ, задефайнить их с названиями в функциях и не париться. А что писать в сони/сониной функции там где у него тэстовые значение написанны? -что вместо них? Сначала ответь на вопрос - ЗАЧЕМ ты собрался их писать, а потом станет ясно, как. У тебя два режима работы девайса - загрузка/считывание данных и нормальная работа. Когда ты работаешь, зачем что-то заливать или считывать по UART? У тебя же уже есть проверка if ( (UCSRA & (1<<RXC)) ) которую достаточно делать один раз за проход программы и она не отмимает много времени. И всё! Пока в UART ничего не пришло, твой синтезатор просто работает. А как придёт, так ему переключатель с кнопкой станет пофиг. Наконец, можешь сделать на плате джампер на любой лапе, на землю, проверять его один раз при включении питания - если джампер подключён, входишь в режим программирования (то есть заливки/считывания частот). Если жумпера нет (а ведь ты включишь подтяжку на той лапе и на ней будет устойчивый "1") работаешь как обычно. Просто надо чуток подумать... Добавление от 20.05.2007 19:33: КРОКОДИЛ Добавление от 20.05.2007 19:34: Причём этот стабилизатор на транзисторе нужен даже если ты импульсный БП делаешь. |
| 766. -=mozg=-, 21.05.2007 02:12 |
| Приветствую! Четвёртвй час бьюсь над проблемой: не запускается кварц ОСРГ-06 на 1024 кГц на восьмой меге. Кварц висит на TOSC1/TOSC2, соответственно должен тактировать второй таймер-счётчик. Вообще он нужен для прерываний с частотой 100 гц (точность нужна - секунды считаются). В теории - должен делить частоту на 1024, и затем считать её до срабатывания компаратора на 100. Не считает. Совсем. Прерываний нет. Попробовал выставить делитель 2 и вставил в процедуру прерываний мигалку (светодиодом). Попробовал через резистор позамыкать ногу кварца с питанием/землёй - работает. Если палец прижать - очень хорошо работает. ![]() Попробовал с фьюзами поиграться. Не помогло, только установка CKOPT в 0 делает схему нечувствительной к пальцу. Конечно, есть подозрение что кварц от старости йок (15 лет ему почти) - но покупал непользованный, не с разборки. Судя по тому, как его долго искали - последний. Вразумительных объяснений почему не взял часовой кварц - не имею. Но в запасах его нет, магазины закрыты. ![]() |
| 767. КРОКОДИЛ, 21.05.2007 02:44 |
| Dikoy А нафига ей ячейка епрома? Так я ж уже обяснял -приемник и передатчик используют разную частоту -соответственно нужно в еепроме делать две группы ячеек и както их переключать -или как? ![]() Ну и БП с возможностью выдерживать напряжени до 80 вольт. Проще всего поставить какую-нибудь 7805 хорошей фирмы, типа ST, она до 35 вольт по входу выдерживает, а до неё всунуть какой нибудь КТ817Г (аналог - BD237), Естественно! -так и проэктируется. Сначала ответь на вопрос - ЗАЧЕМ ты собрался их писать, а потом станет ясно, как. Ну так у него там всем датам циферьки приписаны чтоб на осцилографе красивше было -или просто удалить вcю группу? ![]() И это, схему опубликуй, а то трудно так вот понять что там у тебя... Так какая схема то? Три лапки от контроллера до синтезатора? -так я такое даже и нерисую никогда.У сони^2 все расписано и у меня в дефайнах.Восемь лапок порта B с подтяжкой на переключатель а ползунок переключателя на общий провод. Прием/передача тоже одна лапка порта D с подтяжкой через кнопку тоже на общий провод и все. Короче неполучается у меня нихрена с программой,даже то что уже готовое вместе слепить не могу Добавление от 21.05.2007 03:06: http://slil.ru/24396320 -вот вомпилятор 34 ошибки выдает и предупреждения еще толькоже! |
| 768. Apex_t, 21.05.2007 15:25 |
| КРОКОДИЛ http://slil.ru/24396320 -вот вомпилятор 34 ошибки выдает Похоже на строительсво дома без проекта и даже без эскизов. Гора стройматериалов издалека напоминающая дом. |
| 769. K_AV, 21.05.2007 17:38 |
| КРОКОДИЛ "Так я ж уже обяснял -приемник и передатчик используют разную частоту -соответственно нужно в еепроме делать две группы ячеек и както их переключать -или как?" Не обязательно. Можно всю работу строить от запомненных частот приема, а при переходе на передачу просто высчитывать частоту передачи из частоты приема, и грузить ее в синтезатор. У тебя же смещение частоты для передачи фиксированное. Ну напиши ты алгоритм, что в каком порядке и при каких условиях должно в изделии происходить. Как обычно при разработке, многое можно сделать разными способами, и конкретный выбор зависит от "прочих условий". Не видя полной катрины, можно из стороны в сторону долго мотаться и переделывать уже сделанное "по вновь открывшимся обстоятельствам". |
| 770. Dikoy, 21.05.2007 18:06 |
| КРОКОДИЛ Так я ж уже обяснял -приемник и передатчик используют разную частоту -соответственно нужно в еепроме делать две группы ячеек и както их переключать -или как? В массиве элементы 1-3, это частота передачи 1 канала. 4-6, приёма 1 канала, 7-9 передачи второго канала и т.д. Например, ты обнаружил изменение канала (переключатель переключили), считываешь из еапрома 3 переменных на передачу и 3 на приём во временные переменные (например), а далее мониторишь кнопу и по ажатию/отпусканию быстренько заливаешь в синтезатор соответствующие 3 переменные (ктороые и составят 21 бит посылки). Так какая схема то? Три лапки от контроллера до синтезатора? Звиняй, но от того, КАКИЕ лапки многое зависит. Работать будет по любому, но можно сделать так, чтобы работало лучше. Восемь лапок порта B с подтяжкой на переключатель а ползунок переключателя на общий провод. Ключевая фраза. Значит можно сразу читать весь порт, получится быстрее. Добавление от 21.05.2007 18:20: КРОКОДИЛ Добавление от 21.05.2007 18:23: Вот пишешь тебе, всё объясняешь, тратишь своё время... А ты как нарочно ВСЁ делаешь наоборот! Добавление от 21.05.2007 18:24: Блин, лучше я тебе сам её напишу. Иначе ты ещё два месяца будешь мозг клевать себе и людям. |
| 771. КРОКОДИЛ, 21.05.2007 18:54 |
| Dikoy Звиняй, но от того, КАКИЕ лапки многое зависит. Работать будет по любому, но можно сделать так, чтобы работало лучше. Ну так как у сони^2 расписано так обычно и подключают. Ну какого бабая ты в теле программы пишешь void USART_Transmit( unsigned char data ){/ , то есть ОБЪЯВЛЯЕШЬ функцию, когда я тебе ПО РУССКИ написал как пользоваться функциями UARTа!?!? Ну так это кодевижен нагенерил! Я и слова то такого незнаю - Transmit ![]() |
| 772. Apex_t, 21.05.2007 19:01 |
| Dikoy Блин, лучше я тебе сам её напишу. Мир не без добрых людей. И это хорошо. Добавление от 21.05.2007 19:02: КРОКОДИЛ |
| 773. КРОКОДИЛ, 21.05.2007 19:18 |
| Apex_t аЦтояная прога... Однозначно Блин -откуда ты все знаешь то? ![]() Добавление от 21.05.2007 19:19: Не иначе как шпиен! -мериканский! Добавление от 21.05.2007 19:35: K_AV |
| 774. Xradio, 21.05.2007 23:33 |
| -=mozg=- Попробовал через резистор позамыкать ногу кварца с питанием/землёй - работает. Если палец прижать - очень хорошо работает. Какие нагрузочные емкости навесил? |
| 775. Dikoy, 22.05.2007 19:02 |
| Apex_t Мир не без добрых людей. И это хорошо. Да задолбало просто! Я больше времени потрачу на объяснение того, что он всё равно не сделает, чем тупо взять и написать. Только времени пока нет... Придётся ждать. |
| 776. Iwashka, 22.05.2007 19:15 |
| Смотрю я эта тема прямо как Ленин - живее всех живых!!! Есть у меня несколько отсканированных книжек по AVR. Все на русском. Есть даже с компактом и примерами. Все вместе потянет наверное на 200 Мб. Слить что-ли куда-нибудь или никому уже не надо? |
| 777. КРОКОДИЛ, 22.05.2007 20:29 |
| Iwashka Все вместе потянет наверное на 200 Мб Не, 200мегабайт я несмогу скачать, -еслиб чё нибудь конкретнее ближе к моей теме ![]() |
| 778. joptpd, 22.05.2007 22:42 |
| Iwashka залей если не трудно rapidshare.com |
| 779. -=mozg=-, 23.05.2007 00:27 |
| Xradio Какие нагрузочные емкости навесил? 15 пФ, ещё из школьных запасов. Керамические трубчатые, серые такие. Вроде КТ-1 зовутся, но могу ошибаться. Да, под словом "работает" имел в виду что прерывания появились (само собой делитель - единица, OCR2 = 4. Иначе замучился бы вручную генерировать). 10 Герцами там и не пахло. Положение пальца изменяло частоту в широких пределах. |
| 780. КРОКОДИЛ, 23.05.2007 01:23 |
| -=mozg=- Положение пальца изменяло частоту в широких пределах Ну так попробуй поставить любой другой кварц и посмотри что будет -похоже твоему пришел капут! |
| 781. Pyku_He_oTTyda, 23.05.2007 19:03 |
| Кстати, почему студия спотыкается на if в этой функции (не ругается, а останавливается, как будто точка останова повешена: void send(void) { unsigned char n=0; while(n<=7) { if(temp&(1<<n)) {LED=1;} else {LED=0;} n++; } } причем, если вместо temp пишу число, проходит без запинки temp обьявлена как "unsigned char" |
| 782. Apex_t, 23.05.2007 22:30 |
| Опубликуй листинг Си-АСМ и проверь в VMLAB если возможно. |
| 783. -=mozg=-, 23.05.2007 22:30 |
| КРОКОДИЛ Ну так попробуй поставить любой другой кварц и посмотри что будет -похоже твоему пришел капут! Вряд ли. Новый он (был). Перегреть такую бандуру очень проблематично. ![]() Заменил его на стандартный 32,768 кГц (ноунейм какой-то, из всей маркировки только буква L перед частотой), подкорректировал таймер. Вроде работает (без емкостей). В общем, как будет не лень - попробую навесить по стандартной схеме на 155ЛА3 и потестить. Слишком уж у него частота хорошая. ![]() К сообщению приложены файлы: 1.jpg |
| 784. DrAG0n, 23.05.2007 22:32 |
| Переставил я студию - в новой почему-то когда щелкаешь по сообщению об ошибке с указанием строки - на эту строку оно не переходит... Может, что настроить надо? |
| 785. Pyku_He_oTTyda, 23.05.2007 23:36 |
| Apex_t Завтра, счас с другим куском ковыряюсь, да и спать пора ![]() В VMLAB никак, устройство отвечает на последовательность импульсов, как ее в вмлабе смоделировать - незнаю |
| 786. joptpd, 24.05.2007 00:18 |
| запощу сюда а то лень тему ту искать http://palmavr.sourceforge.net/cgi-bin/fc.cgi калькулятор фьюзов для авр на базе атмеловских хмл файлов |
| 787. КРОКОДИЛ, 24.05.2007 01:30 |
| -=mozg=- Вряд ли. Новый он (был). Перегреть такую бандуру очень проблематично. Кварцы со временем теряют активность, -речь идет о больших промежутках времени,и очень не любят механических воздействий -тоесть их нельзя бросать на пол! Добавление от 24.05.2007 01:56: Apex_t код:А в функци буферизации нарисованой Dikoy происходит наоборот - начинается с data_low и заканчивается data_hi/* Цикл вывода data_hi начиная с бита_7 (Это 21-й код:Поскольку эти две функции прямо связаны между собой то возникает вопрос: не будет ли конфликта? И как должно быть правильно? Или пофиг?// Теперь, когда в буфере нужная нам структура, раскрошим BUFFER на 3 части по 8 бит дабы передать их через сонину функцию ![]() |
| 788. Apex_t, 24.05.2007 08:56 |
| Все правильно. Просто разберитесь что делается с буфером и что будет в переменных. Советую буфер назвать маленькими буквами. |
| 789. Xradio, 24.05.2007 09:26 |
joptpdкалькулятор фьюзов для авр |
| 790. Dikoy, 24.05.2007 14:46 |
| КРОКОДИЛ А в функци буферизации нарисованой Dikoy происходит наоборот - начинается с data_low и заканчивается data_hi В моей функции переменным просто присваиваются значения кусков переменной BUFFER. В какой последовательности, это пофиг. Главное, чтобы их потом передать в правильной последовательности. Вот если бы ты одной переменной последовательно присваивал кусок и сразу передавал, то да. А так пофиг. |
| 791. Apex_t, 24.05.2007 16:23 |
| В Аргусофте в Москве 221-0130 - ATmega8-16pu стоит 32 рубля а ATtiny13 -10su 16 руб в розницу частному лицу. Прикупил по десяточку. |
| 792. КРОКОДИЛ, 24.05.2007 17:20 |
| Dikoy В какой последовательности, это пофиг. Да,разобрался -просто сбило с толку то что локальные и глобальные переменные обозваны одинаково,- мoжет их переименовать -на всякий случай? Еще раз переписал буфер - коmпилятор уже ошибок не дает:код::- так правильно будет? Но почемуто выдает придупреждения - unreferenced function 'BUFFERIZ' и unreferenced function 'data_synt'- к чему бы это? ![]() Добавление от 24.05.2007 17:24: Переводится как "неупомянутая функция", -а где ее упоминать то нужно? Добавление от 24.05.2007 17:40: Apex_t |
| 793. Dikoy, 24.05.2007 19:28 |
| КРОКОДИЛ Что тебе сгенерил алькулятор для R и F регистра? Всё уже написал, осталось залить эти регистры при включении значениями и всё. DATA_LINE = data_mid & 0b10000000 На линию выставляется результат логического И data_mid с числом 0b10000000, записаном в двоичной форме. |
| 794. КРОКОДИЛ, 24.05.2007 19:50 |
| Dikoy Что тебе сгенерил алькулятор для R и F регистра? Регистр R=0x0005A0 Регистр F=0х000082 с числом 0b10000000, записаном в двоичной форме. Да,я немогу понять почему было взято именно это число? -чем это обусловленно? |
| 795. Dikoy, 24.05.2007 20:00 |
| КРОКОДИЛ чем это обусловленно? Тем, что у него старший бит единичка, а остальные нули. |
| 796. КРОКОДИЛ, 24.05.2007 20:15 |
| Dikoy Тем, что у него старший бит единичка, а остальные нули. Не, мне непонятен пересчет,- с какой целью было примененно именно такое выражение? Добавление от 24.05.2007 20:30: Dikoy |
| 797. slava2004, 24.05.2007 22:23 |
цитата:Мамочка, ты путаешься в показаниях- на робофоруме, ты сказал, что купил 20 мег. А что ссылки на курс то нету ? Никак с моей помощью тебя утихомирили ? ЗЫ Чудик - ты мне бан то, за что прописал ? Из-за защиты мамочки ? |
| 798. -=mozg=-, 24.05.2007 22:41 |
| Вроде работает (без емкостей). Поторопился я. ![]() Оторвал макетку от программатора - и снова таймер не заводится, или заводится на явно меньшей частоте (раз в 10 примерно). Прижатие пальца частоту немного повышает. Кварц пока припаян сразу к ногам меги. ...the user can enable internal capacitors on XTAL1 and XTAL2, thereby removing the need for external capacitors. The Oscillator is optimized for use with a 32.768 kHz watch crys- tal. Applying an external clock source to TOSC1 is not recommended. Note: The Timer/Counter Oscillator uses the same type of crystal oscillator as Low-Frequency Oscillator and the internal capacitors have the same nominal value of 36 pF. (c) ATMega8 Datasheet Авотфиг. |
| 799. Xradio, 24.05.2007 22:58 |
| КРОКОДИЛ "И" с числом 0b10000000, записаном в двоичной форме. Да,я немогу понять почему было взято именно это число? -чем это обусловленно Это называется маскирование байта (наложение маски). После этой операции в числе остается только бит в разряде где была 1. Или нужная тебе часть если единиц несколько. Знаешь же как криптографы работают? Если передавать только схему дырочек (координаты), вырезать их в листе бумаги и затем наложить его на нужную страницу "Горе от ума", то через дырочки прочтется совершенно секретный текст. -=mozg=- Без конденсаторв кварцы на процах не работают! И с маленькими емкостями тоже. Для низкочастотных резонаторов требуются большие кондеи. Часовой кварц не в счет - он с маленькой собственной емкостью, потому что там применяется крутильный тип колебаний. И то, часовому надо порядка 30 пикух. На свой мегагерцовый пробуй ставить в районе 47 - 82, или даже выше. |
| 800. КРОКОДИЛ, 25.05.2007 00:07 |
| Xradio Это называется маскирование байта (наложение маски). То что это маска я понял, а непонял из каких соображений он ее наложил,-тоесть что бы он обяснил что она делает в этом куске программы,- дело в том что мы уже написали одну маску в буфере и теперь непонятно нужна ли именно эта маска? и если нужна то именно этим ли числом? Дело в том что соня^2 писал функцию чисто для симулятора из соображений чтоб на осцилографе картинка красивая получилась. А я теперь немогу проследить его ход мыслей А он не отвечает ![]() Dikoy Вот, посмотри как пример: http://dikoy44.narod.ru/projects/BK_VAZ.htm Набрался на твоем сайте вирусов! -сейчас уже третий ящик пятидюймовых дискет доедают! ![]() Добавление от 25.05.2007 02:03: ('-=mozg=-') |
| 801. Dikoy, 25.05.2007 02:48 |
| КРОКОДИЛ Если просто, то он таким образом проверяет значние старшего бита переменной data_**. На линию данных выводится результат логического И старшего бита переменной со старшим битом числа (бо остальные биты в нуле). А т.к. с каждым проходом цикла переменная сдвигается на один бит, то в следующий раз старшим будет предыдуший бит и т.д. на линию выводятся все биты переменной. Читай учебник, 100 раз уже говорил. Там всё это расписано. |
| 802. КРОКОДИЛ, 25.05.2007 04:12 |
| Dikoy Читай учебник, 100 раз уже говорил. Там всё это расписано. Я еще до этого не дочитал ![]() |
| 803. Apex_t, 25.05.2007 08:38 |
| КРОКОДИЛ я теперь немогу проследить его ход мыслей А он не отвечает /* Вывести на DATA 7-й бит data_hi */ DATA_LINE = data_hi & 0b10000000; 1) чему равен 7-й бит в числе 0b10000000 ? 2) что означает & |
| 804. КРОКОДИЛ, 25.05.2007 08:50 |
| Apex_t что означает & Для чего проверять значение старшего бита? - чтоб отследить начало посылки? или как? proavr.narod.ru/05.htm Блин с тобой как с телефонным автоответчиком разговаривать! -невiрно набраный номер! ![]() |
| 805. Dikoy, 25.05.2007 11:27 |
| КРОКОДИЛ Для чего проверять значение старшего бита? Для того, чтобы его узнать. Придумай другой способ вывода байта на линию, если хош. Их несколько. |
| 806. КРОКОДИЛ, 25.05.2007 11:29 |
| Apex_t чему равен 7-й бит в числе 0b10000000 ? Ну так только 7-ой бит и проскочит через это выражение а остальные будут нулями,если учесть сдвиги то в итоге 8битная посылка размажется аж на 64 бита и 8 машинных циклов! Итого на дату синтезатора прийдет содержимое data_hi,data_mid и data_low в виде 192 битного монстра занимающего 32 машинных цикла! -или я чегото не так понял??? ![]() |
| 807. Dikoy, 25.05.2007 11:40 |
| КРОКОДИЛ Что тебе сгенерил алькулятор для R и F регистра? Регистр R=0x0005A0 Регистр F=0х000082 Это прям вот то, что в них надо залиить для твоих частот кварцев, шагов и прочАЯ? |
| 808. Xradio, 25.05.2007 11:44 |
| КРОКОДИЛ Похоже на то, что ты так и не засел за самостоятельное программирование... Вопросы, вопросы, вопросы... Сделай рабочий макет на АВРке и тренируйся. А на все вопросы есть ответы. Все повсюду до такой степени разжевано, что применять микроконтроллеры стало до смешного неинтересно. На грани баловства. ![]() |
| 809. Dikoy, 25.05.2007 11:50 |
| КРОКОДИЛ Ну так только 7-ой бит и проскочит через это выражение а остальные будут нулями,если учесть сдвиги то в итоге 8битная посылка размажется аж на 64 бита и 8 машинных циклов! Вот нарисуй на двух бумажках побитно число 10000000 и любой произвольный байт, потом двигай этот байт относительно числа и просчитай операцию И между ними. И сразу поймёшь. И происходит ПОБИТНО, то есть И двух байтов, если у одного из них только один единичный разряд, будет равно И между этим разрядом и байтом напротив него в другом слове. |
| 810. КРОКОДИЛ, 25.05.2007 12:39 |
| Dikoy потом двигай этот байт относительно числа и просчитай операцию Я так и сделал Но за этим байтом то остальные паравозиком двигаются,и чтобы пропустить 8битную посылку нужно 8 сдвигов -тоесть 8 машинных циклов. Возьмем например 11111111 и пропустим 8 раз через И 100000000 -получится: 100000000 010000000 001000000 000100000 000010000 000001000 000000100 000000010 000000001 итого 64 бита. Добавление от 25.05.2007 12:46: И чтобы потом поставить все наместо нужно еще сделать ИЛИ -но все равно посылка растянется во времени. |
| 811. sw1972, 25.05.2007 13:26 |
цитата: Существуют ли кварцевые резонаторы, предназначенные для работы в условиях воздействия механических перегрузок(удары, вибрации и т.п.)? |
| 812. Apex_t, 25.05.2007 13:37 |
| Dikoy Читай учебник, 100 раз уже говорил. Там всё это расписано. Да он даже комментарии прочитать и ПОНЯТЬ не желает из того же тескста программы что привел вверху этой страницы код: ======== Dikoy посмотри как пример: http://dikoy44.narod.ru/projects/BK_VAZ.htm Советую добавить быстрый диод (шоттки или 4148) между С7 и D4. |
| 813. Dikoy, 25.05.2007 15:38 |
| Xradio Похоже на то, что ты так и не засел за самостоятельное программирование... Он то засел. Если б он ещё и почитал перед этим, хотябы синтаксис Си, цены бы ему небыло ![]() КРОКОДИЛ 010000000 001000000 000100000 000010000 000001000 000000100 000000010 000000001 Единичка по диагонали на размышления не наводит? Apex_t Советую добавить быстрый диод (шоттки или 4148) между С7 и D4. А смысл? Обратные выбросы прекрасно жрёт стабилитрон и электрический потенциал (заряд) С7, который как раз работает стопором для обратных токов. Да и дроссель ОЙ какой стопор для любых резких изменений напряжения питания. Там и так наверчено жуть... Я просто L7805 ставил, без ничего, и годами работало. Но это неправильно для авто, есно. КРОКОДИЛ Отправил в мыло. Сам выложи, а то у меня на слил и народ чёта не заходит... И ещё. У меня вижон не крякнутый (е захотел крякнутый на бук вставать) и выдаёт ошибку превышения объёма Попробуй на крякнутом откомпилить, что получится? |
| 814. Pyku_He_oTTyda, 25.05.2007 21:44 |
| КРОКОДИЛ Написал я контроллер, прогнал все функции, которые нашел в описании на LANC, гуляющем по сети. В принципе, те команды, что и в твоей ссылке - работают. Ничего более вкусного не нашел (диафрагмы и баланса белого). P/S/ камера SONY DCR-SR200E |
| 815. КРОКОДИЛ, 25.05.2007 22:13 |
| Pyku_He_oTTyda Ничего более вкусного не нашел (диафрагмы и баланса белого). Так а диафрагма у меня вроде регулировалась через ланс, а вот с балансом белого пряма беда заказчик хочет в следующих приблудах баланс белого А ты смотрел в протоколе,- он там есть?Добавление от 25.05.2007 22:40: Dikoy |
| 816. Dikoy, 26.05.2007 02:16 |
| КРОКОДИЛ чтото насчет неактивированного еепрома. Массив не проинициализирован, про это ещё соня писал. Но массивы обычно создаются в оперативке, а там не надо хранить данные после выключения. ИМХО, инициализировать массив в епроме таким макаром равнозначно его затиранию при каждом включении. Даже в примерах вижна епромовские массивы не инициализируют, а отключают вонинги в этом месте. Так что не парься. В общем откомпилился нормально Какой процент флеша кодом занят? Компиль шифт+F9, он выдаст отчёт полный. зачем это нужно? Затем, что незьза сказать компилятору "выведи этот байт на эту лапку". Можно только последовательно разбирать переменную по битику, определять значение этого битика и выставлять лапку в соответствующе битику значение. А что скажет на этот счет товарищ Жюков? -тобишь соня/соня? Он же это и написал. Если пауза небыла нужна на кварце 10 МГц, то на 4,5 и подавно. Я его функцию вообще не трогал. Это нужно чтоб обеспечить необходимые временные промежутки, - правильно я понял? - ну вот типа этого: Нет, время там вообще непричём. Представь байт как плёнку с засвечеными/незасвечеными кадрами. Чтбы считать их, надо прокрутить плёнку у окошка, тогда кадры пройдут и ты их увидишь. Вот это он и делает. Переменная 1000000 это и есть то, одно окошко, в 7 бите. А переменную с данными вдоль него прокручивают. Так куда выложить сюда или на слил? Туда, от куда народ может скачать. У меня эта прога есть, не волнуйся ![]() Добавление от 26.05.2007 02:27: КРОКОДИЛ |
| 817. КРОКОДИЛ, 26.05.2007 03:29 |
| Dikoy Обрати внимание, я дефайны чуть изменил. Лапки переназначил. Кнопу перенёс на другую лапу, а на её место RTS линию. Да я сразу ето усек ![]() Какой процент флеша кодом занят? Флеша =55,8% а еепрома 37,5. Слушай а локальные переменные для сониной функции то не обьявлены и она будет пользовать глобальные которые пользует буфер -ничего там не перепутается? ![]() Нет, время там вообще непричём Ну все равно посылка сильно ж растянется во времени? Восемь И прилично растянут, плюс еще сдвиги дадут задержку ![]() Он же это и написал. Шибко сумневаюсь! ![]() Тут еще возникли сомнения насчет очередности передачи данных,-пойду еще раз даташит попробую почитать -вот уж блин непочеловечески пишут эти даташиты на PLL ![]() Добавление от 26.05.2007 03:36: А вот еще обьясни такую фигню - еслиб допустим изначально я взял 32битную мегу -то эти пляски со сдвигами в буфере были бы ненужны или все равно пришлось бы двигать? Добавление от 26.05.2007 03:56: Блин потерял в недрах компьютера ПО которое ты писал для УАРТА - второй день не могу найти |
| 818. Pyku_He_oTTyda, 26.05.2007 08:23 |
| Переключение ББ есть в командах, и есть сброс ББ. А какими кнопками у тебя диафрагма регулировалась? По твоей ссылке я их не вижу. |
| 819. КРОКОДИЛ, 26.05.2007 12:23 |
Так я кнопки не вещал -просто позамыкал проводки одного шлейфа на другой и все.Вообще я этим проэктом всерьез не занимался, -это у меня какбы левачок никак не связанный с основной деятельностью,-поэтому все делалось по сокращенному курсу. В етой программе K_AV нашел ошибку с пересчетом, возможно она и была причиной появления новых команд, и отсутствия какихто других, а исправленную програму я еще не пробовал потому что пока неначем,-тоесть контроллеры еще не приехали,и камеры более менее вменяемой у меня тоже нет. Слушай а как по ангийски это выглядит в смысле баланс белого и его команды? Блин попридумали несколько скоростей для зума -которые как выяслилось под водой нафиг не нужны! А того что нужно какраз и нет ![]() |
| 820. K_AV, 26.05.2007 14:21 |
| Pyku_He_oTTyda Ошибка была не с пересчетом. Там генерировалась какая-то задержка, и в однобайтный счетчик грузили число 300 (т.е. реально получалось 44). Я не разбирался глубже, т.к. задача была по-простому переселить на другой типономинал МК. |
| 821. Dikoy, 26.05.2007 21:19 |
| КРОКОДИЛ Слушай а локальные переменные для сониной функции то не обьявлены и она будет пользовать глобальные которые пользует буфер -ничего там не перепутается? Дык на то они и глобальные, чтобы ими везьде пользоваться. Восемь И прилично растянут Да не будет там восемь И, т.к. И делается параллельно по всему байту. Пока не почитаешь про логические функции бесполезно что-то объяснять. еслиб допустим изначально я взял 32битную мегу -то эти пляски со сдвигами в буфере были бы ненужны или все равно пришлось бы двигать? Даже на пентиуме пришлось бы двигать. Кинь еще раз ссылочку, Дык пролистай две страницы этой ветки и найди. У меня уже нет её, но с сайта не удалял. |
| 822. КРОКОДИЛ, 26.05.2007 22:38 |
| Dikoy Да не будет там восемь И, т.к. И делается параллельно по всему байту. Ну так там же счетчик заставляет восемь раз сдвигать байты и восемь раз делать И ![]() Дык на то они и глобальные, чтобы ими везьде пользоваться Это хорошо! ![]() Даже на пентиуме пришлось бы двигать. Не, у меня Атлон-3000 ![]() |
| 823. Dikoy, 27.05.2007 02:14 |
| КРОКОДИЛ Отправил в мыло новую версию. Изменения: Выбор канала оформлен отдельной функцией (экономим флешку). Добавлен обработчик кнопки в прерывании. Теперь всё должно вообще шикарно работать. Ну так там же счетчик заставляет восемь раз сдвигать байты и восемь раз делать И Ну восемь раз и сдвигает. Что в этом криминального? Добавление от 27.05.2007 02:17: PS: в кодевижне зайди |
| 824. КРОКОДИЛ, 27.05.2007 03:09 |
| Dikoy Теперь всё должно вообще шикарно работать. Да теперь бы еще микросхем дождатся бы.......... Отправил в мыло Ща пойду гляну. PS: в кодевижне зайди Это уже завтра,сейчас какраз синтезатор в Воронежский Лен монтирую...... Ну восемь раз и сдвигает. Что в этом криминального? Криминального ничё, а вот посылка во времени растянется, -видать таким способом временные промежутки для синьтезатора подгоняли всетаки. Здесь же не к PIND обращение а к PORTD. Кстати обьясни популярно в двух словах как на СИ в еепром вручную значения вписывать? -а то я MAX-232 еще не скоро получу. И как этот проэкт в VMLAB засунуть? а то у меня шось не получается..... ![]() |
| 825. Pyku_He_oTTyda, 27.05.2007 08:23 |
| КРОКОДИЛ K_AV White balance toggle (not if white balance is selected via menu) 0x28, 0x49 White balance reset (not if white balance is selected via menu) 0x28, 0x77 0x28 - cуб-команда, второй - собственно команда. З.Ы. действительно, куча скоростей зума действительно не нужна Добавление от 27.05.2007 08:24: цитата: а на что преселяли? А то я заблудился в количестве страниц |
| 826. КРОКОДИЛ, 27.05.2007 09:51 |
| Pyku_He_oTTyda Я кстати прогуглить ланк пытался,вобщем поиск выдал больше милиона страничек,ну вполне естественно больше двух гуголевских страниц просмотреть у меня нехватило силы воли Но даже на них нашел лансы с дисплеями и прочей чебурдой и даже 2004 года проекты, но все почемуто на очень старых камнях типа PIC16C54 -у них что там других микросхем нет? ![]() |
| 827. Pyku_He_oTTyda, 27.05.2007 14:52 |
| а мне ничего толкового не попалось, писал с нуля - буду дальше причесывать. Пока для отладки сделал так: через USART гружу команду, нажатием кнопки проверяю ее действие |
| 828. DrAG0n, 27.05.2007 16:31 |
| Про запись в ЕЕПРОМ: unsigned char read_params(void) { // from EEPROM // Warning! any timeout will cause watchdog ovf! int i; flags &= ~FAIL; for (i = 0; i != NPARAM; i ++) { PARAM[i] = eeprom_read_word((uint16_t *)(i*2) + EEPROM_PARAM); // really need *2. if ((PARAM[i]<minParam[i])||(PARAM[i]<minParam[i])) // if (!inborders(minParam[i],maxParam[i],PARAM[i])) { flags |= FAIL; break; } } if (flags & FAIL) { for (i = 0; i != NPARAM; i ++) PARAM[i] = dflParam[i]; // store_params(); } return 1; } unsigned char store_params(void) { // from EEPROM // Warning! any timeout will cause watchdog ovf! int i; for (i = 0; i <= NPARAM; i ++) { if (eeprom_read_word((uint16_t *)(i*2) + EEPROM_PARAM) != PARAM[i]) // write only if we need it. eeprom_write_word((uint16_t *)(i*2) + EEPROM_PARAM, PARAM[i]); // really need *2. } return 1; } Добавление от 27.05.2007 16:31: и в начале еще |
| 829. КРОКОДИЛ, 27.05.2007 17:45 |
| Pyku_He_oTTyda Если будет свободное время то попробую в протоколах разобратся. DrAG0n Спасибо! Добавление от 27.05.2007 19:03: Dikoy |
| 830. igor_v, 27.05.2007 23:37 |
| Честно говоря, читаю эту ветку вместо детектива - просто интересно чем дело закончится, если конец вообще будет. КРОКОДИЛ Криминального ничё, а вот посылка во времени растянется, -видать таким способом временные промежутки для синьтезатора подгоняли всетаки. Ну, если после чтения данной ветки на изучение умных книжек не остается времени, тогда попытаюсь развеять сие заблуждение. И таааак... В цифровой технике существует два способа обмена данными - параллельный и последовательный. При параллельном каждый бит даннных передается по своей индивидуальной линии. Сколько бит нужно передавать/принимать - столько и линий данных. Думаю тут все понятно и ничего объяснять не надо. При последовательном - все биты данных могут передаваться/приниматься по одной единственной линии следуя друг за другом, т.е. их сдвигают. Направление сдвига определяется тем, какой бит в последовательности должен передавться/приниматься первым. Если первым должен быть старший бит (самый левый), то сдвигать это все нужно влево (как с LMX2316), если младший (самый правый) - то вправо. Кол-во сдвигов равно кол-ву битов, которые нужно передать или принять (и временные задержки здесь не причем). При прочих равных условиях скорость при параллельном обмене выше, чем при последовательном во столько раз, сколько бит нужно передать/принять, но при этом ровно во столько же раз увеличивается кол-во линий данных. Например, при параллельном способе, чтобы передать байт данных, нужно 8 ног 8-разрядного порта (для каждого бита своя нога) и одна - две команды (для ассемблера) для выдачи байта данных в порт - получается быстро, но при этом задействуется куча ног для обмена данными как с передающей стороны, так и с принимающей. И плата получится сложная и громоздкая. А если данные передаются по одному порту, а принимаются по другому... А если кол-во разрядов данных не 8, а 16, 32, 64... (посмотрите на материнские платы). При последовательном способе для передачи байта данных достаточно одной линии (data), но при этом передаваемые данные нужно сдвигать 8 раз, т.к. 1 байт - это 8 бит. Причем состояние линии данных должно фиксироваться приемной стороной при каждом сдвиге, для чего по отдельной линии (clock) для каждого бита данных передается свой тактовый импульс (см. описание LMX2316, п. 1.4) - это синхронный режим. Асинхронный пока разжевывать не будем, т.к. в данном случае он нас не интересует. Если не нужна работа на "сверхскоростях" и не хочется транжирить свободное место на плате, то последовательный обмен данными гораздо предпочтительнее параллельного. Ради этого лучше один раз "немного" усложнить программу под последовательный обмен и штамповать простые и дешевые платы, чем пользоваться параллельным обменом и штамповать сложные и дорогие платы. Из всего выше сказанного следует: если бы наш синтезатор (LMX2316) принимал данные параллельно, то кол-во его ног увеличилось бы как минимум на 20, т.к. ему нужно принять 21 бит. Соответственно и контроллеру нужна 21 нога для передачи этих 21 бит. В результате - вместо небольшой платы, на которой две "моськи" с минимальным кол-вом выводов имеем огромную плату с двумя "слонами", и у каждого как минимум по 40 ног, а между ними - 21 линия данных, которые бОльшую часть времени работы устройства нагло отдыхают. Кстати, USART (Universal Synchronous Asynchronous Receiver Transmitter - универсальный синхронно-асинхронный приемо-передатчик) - это последовательный интерфейс, т.е. тоже байты придется двигать. |
| 831. K_AV, 27.05.2007 23:44 |
| Pyku_He_oTTyda Мне этот LANC вообще не нужен, просто КРОКОДИЛ попросил помочь работающую программу для PIC16F84 переселить в PIC16F628. Это и оказался LANC (а не обсуждавшийся до того времени синтезатор). Попутно я в ней на указанный ляп наткнулся (компилятор выдал предупреждение; глянул - а это и в исходной программе было). А вообще та программа в этой ветке - оффтопик (не AVR), отправил КРОКОДИЛ почтой что получилось, ну обещал еще попозже русских комментариев добавить - но что-то сомнения начали брать, что они пригодятся. А впустую кнопки жать - слишком много получается. |
| 832. КРОКОДИЛ, 28.05.2007 02:46 |
| igor_v В цифровой технике существует два способа обмена данными - параллельный и последовательный. Понятно! Спасибо за толковое обьяснение -такого редко от кого добьешся. -Вобщем прочитал и все сразу стало ясно -без вопросов. ![]() читаю эту ветку вместо детектива Детективы тоже иногда полезно читать! ![]() если конец вообще будет Так уже все -это и есть конец -программа написана Dikoy- за что ему отдельное огромное спасибо! Теперь только осталось дождатся доставки микросхем. Все что было кардинально непонятно в програмировании коллеги мне популярно обьяснили,твой пост поставил последнюю точку над И. Теперь у меня есть уровень знаний необходимый для того чтобы понять о чем пишут в учебниках,- ведь для любого учебника тоже нужен определенный уровень - иначе ничего не поймешь! А дальше уже буду учится сам.- Во всяком случае до следующей зимы никому мозги сушить не буду.P.S. Пока сражался с програмированием на СИ волосы на голове отросли до плеч, и борода выросла как у Карла Маркса! ![]() K_AV но что-то сомнения начали брать, что они пригодятся Руские коментарии в програме всегда пригодятся! После опробования синтезатора займусь этим делом всерьез,я ж асемблер не забросил - потихоньку изучаю,- на ночь ложу учебник под подушку! Попозже попробую переписать этот проект под AVR и дописать все необходимые функции.А руские коментарии очень помогают разобратся что к чему! ![]() |
| 833. Dikoy, 28.05.2007 16:19 |
| КРОКОДИЛ и даже 2004 года проекты, но все почемуто на очень старых камнях типа PIC16C54 -у них что там других микросхем нет? Да просто всё. Китаёзы налаживают у себя производство камней, лицензия на которые истекла у америкосов и те их снимают с производства. Т.к. за пределы страны их не продают (только в виде устройств), то на лицензию им плевать. Камни эти намного дешевле, хоть и идентичны по архитектуре с оригиналом. Разработчик делает девайс на устаревшем ПИКе, заказ выполняют, есно, в китае, где китаёзы ввинчивают в приборы свои камни. В итоге прибор получается совсем дешёвым. DrAG0n Про запись в ЕЕПРОМ: А зачем ему это? Ему забить бы в массив начальные значения и всё. КРОКОДИЛ Просто в фигурных скобказ в месте объявления массива присвой ему начальные значения. Как это сделать расписано в тех ссылках, что я тебе давал на массивы сраницы две назад. |
| 834. КРОКОДИЛ, 28.05.2007 16:48 |
| Dikoy В итоге прибор получается совсем дешёвым. Блин, нашел даже програму для ланка на СИ -но неизвестно под какой камень - скорей всего под 51 ядро. Потому что других схем не видел -только на пиках и на 51ых. ![]() китаёзы ввинчивают в приборы свои камни. Так вроде проекты любительские.............. Просто в фигурных скобказ в месте объявления массива присвой ему начальные значения. Понял -попробую нарисовать. |
| 835. Pyku_He_oTTyda, 28.05.2007 17:25 |
цитата:ССЫЛКУ не помните? |
| 836. Dikoy, 29.05.2007 01:19 |
| КРОКОДИЛ Так вроде проекты любительские.............. Значит ещё проще - чуваки либо не учатся новому, либо выкладывают старые проекты, которые уже не ценны. |
| 837. КРОКОДИЛ, 29.05.2007 02:18 |
| Pyku_He_oTTyda ССЫЛКУ не помните? Неа, -склерос воскрес! Вот я сюда выложил там вверху чтото типа протокола а ближе к низу програма http://slil.ru/24431787 Я еще какойто мути нагуглил по этой теме но пока неразбирался бо некогда. Добавление от 29.05.2007 02:31: Dikoy |
| 838. КРОКОДИЛ, 30.05.2007 18:25 |
| Dikoy Перечитал еще раз второй и третий том детектива но так и не понял, -убили его в конце? или нет? Вот смотри:код:Здесь буферизация регистра N вместе со сдвигами отправленна в коментарии, -тоесть в работе МК не учавствует./* А здесь: код:здесь тоже абсолютно ничего не происходит.//Теперь заливаем регистр N частотой приёма, на которой стоит переключатель. А вот здесь: код:Данные из еепрома отсылаются прямо в сонину функцию минуя буферизацию и сдвиги на 8 и на 16 И непонятно когда они туда прийдут до регистров R и F? или после них? или посредине? ![]() |
| 839. Dikoy, 30.05.2007 20:42 |
| КРОКОДИЛ Здесь буферизация регистра N вместе со сдвигами отправленна в коментарии, А нафига нужно заливать частот ыиз головы, когда можно залить те, на которых ручка? здесь тоже абсолютно ничего не происходит. Уверен? ![]() Данные из еепрома отсылаются прямо в сонину функцию минуя буферизацию и сдвиги на 8 и на 16 Ну подвигай, если хош. Забавно будет выглядеть сдвиг char на 16 бит... Короче, пока не купишь учебник по Си отвечать не буду. Надоело жевать то, что расписано. И опять же - поддерживать эту разработку у меня нет ни времени ни желания, так что разбирайса сам как работает, пока есть время. А то врдруг чё изменить понадобится... ![]() непонятно когда они туда прийдут до регистров R и F? или после них? или посредине? В R и F даные загружаются один раз при включении питания. А вот N перезаливается при каждом изменении ручки или кнопки TXRX, бо именно он отвечает за частоту. |
| 840. КРОКОДИЛ, 31.05.2007 02:59 |
| http://slil.ru/24442932 - вот загрузил сюда оба проекта, для тех кому интересно..... Добавление от 31.05.2007 03:31: Dikoy |
| 841. Dikoy, 31.05.2007 17:13 |
| КРОКОДИЛ Я имел в виду что данные на которых ручка вроде как нужно заливать в сонину функцию через буфер со сдвигами и четко между содержимым регистров R и F......... В сонину функцию должны попасть три переменные по 8 бит. Регистр N (его значение) ты выщитываешь калькулятором, моей прогой с компа заливаешь в МК, при этом значения калькулятора уже дробятся на 3*8 бит. и в таком виде они пишутся в епром (нафига по 10 раз сдвиги делать?). От туда в чистом виде они и берутся. А N и R регистр присваиваются переменным сразу и дробятся на 3*8 самим МК (для удобства). Ну так ты же сам придумал буферизацию со сдвигами, регистры R и F сдвигаются а регистр N приходит почемуто в сонину функцию напрямую минуя буфер.... тогда ещё мы хотели слать МК частоты, а он сам должен был формировать буфер. Нонче мы тупо сохраняем в нём значения калькулятора, то есть уже готовые значения регистров. Я имел в виду что регистр N даже не обьявлен, и вовсе не факт что данные из еепрома попадут именно в регистр N синтезатора а не в какой нибудь другой. А зачем его объявлять, если его значения, уже покрошеные, сидят в епроме? Бери их от туда, сразу присваивай сониным переменным и всего делов! Там функция choice_channel(); Всё в ней делается. Добавление от 31.05.2007 17:22: КРОКОДИЛ Добавление от 31.05.2007 17:26: КРОКОДИЛ |
| 842. КРОКОДИЛ, 01.06.2007 02:58 |
| Dikoy А N и R регистр присваиваются переменным сразу и дробятся на 3*8 самим МК (для удобства). Не, дело в том что с калькулятора от производителя все три регистра идут уже раскрошенными -по 21 биту, тоесть наверно R и F можно тоже не сдвигать? Ну вобщем нужно дождатся микросхем и попробовать а тогда будет видно. Если не будет работать будем пинать соню/соню! ![]() моей прогой с компа заливаешь в МК Тут вот немного накладка с прогой получилась по моей вине, изначально задумывалось так как сделанны проги на фирменных аппаратах -в прогу вписывается частота канала а сама прога делит ее на 12,5кгц а полученный коофицент деления уже заливает в МК, Я тебе толком не обьяснил так как считал что это само собой разумеется И ты сделал только проверку кратности шага. -впрочем для теперишней версии проекта это уже не важно, так как решили заливать уже готовые значения калькулятора, -но прога и их не пропустит так как значения выданные калькулятором не кратны 12,5 потому что калькулятор приклеивает к ним служебные биты. Так что непонятно что теперь делать с заливкой? ![]() Светодиод таки подцепи к свободной лапе МК. Так что к любой свободной лапке? Его же нужно както в программе прописать? Или нет? А как я увижу его мигания на частоте 4,5мгц ?Добавление от 01.06.2007 04:21: Да кстати а куда Сонины хидеры запихивать? Я так понял что в директорию кодевижена? А в какую именно папку? |
| 843. Dikoy, 01.06.2007 14:48 |
| КРОКОДИЛ прога и их не пропустит так как значения выданные калькулятором не кратны 12,5 потому что калькулятор приклеивает к ним служебные биты. Ну уберу проверку, всего то делов... Его же нужно както в программе прописать? Зачем? Лапу ставишь в "1", он не горит. Ставишь в "0", он горит. А как я увижу его мигания на частоте 4,5мгц ? Никак. По этому он и не будет мигать на частоте 4,5мгц. Я так понял что в директорию кодевижена? А в какую именно папку? Туда где все хидеры. А нафига? Оно и так работает. |
| 844. КРОКОДИЛ, 01.06.2007 17:41 |
| Dikoy Туда где все хидеры. Ага, разобрался. А нафига? Ну на всякий случай! ![]() Оно и так работает. Не, просто следующий проект будет для себя, ну и естественно с наворотами и на более крутом МК -на какой нить Меге. Да кстати можешь обьяснить как отправлять данные из еепрома одновременно в два места? -Допустим в синтезатор и на дисплей? -причем перед передачей на дисплей нужно выполнить с данными еще некоторые логические и математические операции. Ну с синтезатором все понятно -тоесть написал в конце функции data_to_synt (); и все, а как быть с дисплеем, -что дописать ниже lcd_init;? как тогда производить с данными операции? -они ведь никак не обозванны ![]() Добавление от 01.06.2007 17:50: Да кстати -вот эти дефайны нигде в программе не используются - код:-тоесть их можно удалить?#define CH1 PINB.0 // |
| 845. Dikoy, 01.06.2007 21:10 |
| КРОКОДИЛ тоесть их можно удалить? Можно. на более крутом МК А зачем?.. Да кстати можешь обьяснить как отправлять данные из еепрома одновременно в два места? Сначала отправляешь в одно место, потом в другое. Не думаю, что задержка появления информации на дисплее в 10 мС вызовет расстройство у юзера ![]() |
| 846. КРОКОДИЛ, 01.06.2007 23:05 |
| Dikoy Не думаю, что задержка появления информации на дисплее в 10 мС вызовет расстройство у юзера Конечно нет! Кстати у нас ведь данные из еепрома для передатчика вытаскиваются, -вот сейчас вспомнил что это дело долгое, -какой будет реальная задержка при переключении на передачу, -уложится в полсекунды или нет? ![]() А зачем?.. Затем что это будет прибамбас для себя -тоесть максимально навороченный -многодиапазоннный со сканированием,с дуплексом, с множеством каналов памяти,с клавиатуой, с репитерными каналами и т.д. Кстати еще и с АЦП,- для вывода на дисплей информации о силе принимаемого сигнала, а может даже и с панорамным индикатором -но это пока просто задумка и будет разрабатыватся зимой, а пока учусь! - вот плохо только системный блок под подушку не влазиет Кстати какой посоветуешь МК?Добавление от 01.06.2007 23:17: Dikoy код:Но мне перед отправкой на дисплей данные нужно еще обработать, -вот не соображу как к ним обратится? |
| 847. Dikoy, 02.06.2007 01:46 |
| КРОКОДИЛ уложится в полсекунды или нет? Ну если все каналы читать раз по 10 подряд, уложится. Один канал уложится в миллисекунду ![]() сейчас вспомнил что это дело долгое, относительно долгое Если доступ к переменной в ОЗУ, это один тик, то к флешу 80 тиков, кажется... Не помню уже, у разных АВР по разгому. Но всё равно быстро.Кстати какой посоветуешь МК? Лучше нечто современное, типа меги48, меги88. Должно и 48 хватить с запасом. Тут у тебя в полтора килобайта прошивка уложилась, а там и 4. У 88 просто памяти 8 кБ, а так то-же. вот не соображу как к ним обратится? Что ты понимаешь под "обратиться к данным"? |
| 848. КРОКОДИЛ, 02.06.2007 02:28 |
| Dikoy Что ты понимаешь под "обратиться к данным"? Ну содержимое регистра N -у нас нигде не обьявленно и не обозванно, а мне для отправки на дисплей нужно например сделать так: (("Содежимое регистра N"/4)& 0x0111110)+0x358; //это пример.... lcd_init(16); } - Вот я и несоображу что нужно писать вместо "Содежимое регистра N" ? -ведь я немогу написать какуюто определенную цифру так как она все время будет изменятся в зависимости от номера канала ![]() или так: (("Содежимое еепрома"/4)& 0x0111110)+0x358; lcd_init(16); } тоже непонятно как это написать? ![]() Dikoy меги88 А на какой порт лучше всего дисплей вешать? |
| 849. Dikoy, 02.06.2007 04:45 |
| КРОКОДИЛ А на какой порт лучше всего дисплей вешать? Монопенисуально. Визард сам тебе сгенерит все линии - попробуй. Ну содержимое регистра N -у нас нигде не обьявленно и не обозванно, а мне для отправки на дисплей нужно например сделать так: Чтобы сделать так, нужно получить из епрома значение канала. То есть склеить воедино три байта. unsigned long int N; N=koefp[x]+koefp[x+1]*256+koefp[x+2]*65536; //как я уже говорил, умножение аналогично сдвигу. "х" здесь - номер элемента массива. Теперь в переменной N копия регистра N синтезатора. Ну а дальше мучай её как хош. lcd_init(16); Эта функция инициализирует дисплей, что следует из её названия ![]() Отправлять значение надо ф-й lcd_putsf(); Предварительно выбрав нулевую точку на экране при помощи lcd_gotoxy(,); В примерах вижна всё написано. Даже с коментами. |
| 850. КРОКОДИЛ, 02.06.2007 05:24 |
| Dikoy Эта функция инициализирует дисплей, что следует из её названия Ясно, - путаюсь пока, кстати как это переводится -gotoxy- промт отказался переводить ![]() Даже с коментами если б на руском........... Ну а дальше мучай её как хош. Да уж замучаю............. ![]() Сейчас посмотрел Меги88 в харькове -всего 9,80грн. за 20мегагерцовую , а 10 мегагерцовая почемуто дороже - 14грн. ![]() |
| 851. Dikoy, 02.06.2007 17:04 |
| КРОКОДИЛ gotoxy go to икс игрек. В дословном переводе "дуй до икса и игрека" ![]() а 10 мегагерцовая почемуто дороже - 14грн. Диапазон питания шире. если б на руском........... Промт ![]() Однажды в универе мне шеф дал переводить доку с китайского. И перевёл! Хотя ни промтов, ни файнридеров, ни ЭВМ вообще тогда небыло. Фишка в том, что там была одна матемаимка, и когда стало я ясно, как оно работает, коментарии пришли сами собой. Выучи Си и коментарии тебе будут ненужны. |
| 852. КРОКОДИЛ, 02.06.2007 19:48 |
| Dikoy Фишка в том, что там была одна матемаимка, и когда стало я ясно ЗЫ. А я всегда почемуто думал что програмисты это пришельцы из космоса, -откуда нибудь из созвездия "Черного лебедя" ![]() В дословном переводе "дуй до икса и игрека" Меня все время сбивают с толку эти импортные словечки с нижними тире. ![]() Слушай а в твоей проге никак нельзя сделать опции Файл ->сохранить как... и соответственно Файл -> открыть- дело в том что это очень полезное дело когда работаешь с блоками цифр которые просто невозможно запомнить. |
| 853. Dikoy, 03.06.2007 20:50 |
| КРОКОДИЛ Слушай а в твоей проге никак нельзя сделать опции Файл ->сохранить как... и соответственно Файл -> открыть- Можно, но я уже сильно забыл делфи... Врядли смогу написать сейчавс. Да и влемени до конца июня нет. |
| 854. КРОКОДИЛ, 04.06.2007 04:12 |
| Тогда не ненужно -пойдёть и так,только проверку на кратность убрать и все. |
| 855. Dikoy, 04.06.2007 09:33 |
| Отправил. |
| 856. Apex_t, 04.06.2007 21:36 |
| КРОКОДИЛ Кстати какой посоветуешь МК ? Dikoy Лучше нечто современное, типа меги48, меги88 Блин ! Классная рекомендация ! Нафига спрашивается начинающему мега8 или -16 или -32 которые поддерживаются симуляторами VMLAB и PROTEUS ... Зчем тратить время и забивать голову этими "никчемными" програмульками ... |
| 857. Dikoy, 04.06.2007 22:32 |
| Apex_t Нафига спрашивается начинающему мега8 или -16 или -32 которые поддерживаются симуляторами VMLAB и PROTEUS ... Зчем тратить время и забивать голову этими "никчемными" програмульками ... Для опытов можно и мегу8 иметь, но закладывать в устройство я бы её не стал. |
| 858. КРОКОДИЛ, 05.06.2007 01:41 |
| Dikoy Отправил. Получил, но она гдето повредилась по дороге 4 раза скачивал и каждый раз пишет -"Неожиданный конец архива" ![]() Добавление от 05.06.2007 01:47: Apex_t |
| 859. Dikoy, 05.06.2007 02:30 |
| КРОКОДИЛ но она гдето повредилась по дороге Таможня наверное... Выложил тут: www.dikoy44.narod.ru/V20.zip Мега 16 должна прийти вместе с LMXами -они уже в Донецке так что скоро будут у меня. Ну тогда играйся с мегой16. И памяти в ней валом, и периферии. На твою задачу - с головой. Но если девайс серийный и с последующей долгой продажей и поддержкой, то лучше выбирать 48-88-168. Их точно лет 5 ещё с производства не снимут. |
| 860. КРОКОДИЛ, 05.06.2007 03:16 |
| Dikoy Выложил тут Скачал,проверил -все нормально! Спасибо! ![]() Ну тогда играйся с мегой16. Да пока потренируюсь на кошках........ ![]() |
| 861. КРОКОДИЛ, 18.06.2007 01:31 |
| Dikoy А можешь написать пример как пищутся кнопы с электронной фиксацией? Ну допустим нажал я кнопу "сканирование" -побежала частота,отпустил она остановилась, а мне нужно чтоб она бежала все время до тех пор пока я ненажму повторно этуже кнопу или пока не сработает шумоподавитель. Как такое написать? |
| 862. Dikoy, 18.06.2007 09:58 |
| КРОКОДИЛ Ща некогда... Примерно так - фиксишь нажалие, потом вилом ждёшь отпускания. Потом крутишь цикл поиска, постоянно мониторя кнопу. Ну и снова - нажатие и отпускание (чтобы помехи за нажатие не принимались). |
| 863. K_AV, 18.06.2007 13:19 |
| Dikoy, КРОКОДИЛ Позволю себе маленькое уточнение. Много раз наблюдал, как люди в таком интерфейсе путались (когда программа ждет отпускания кнопки). Такой подход проще для программиста, но для пользователя неестественно это. Требуется: "Нажал кнопку - вижу результат". А от помех - как и от дребезга защититься. Итого - В программе вводим флаг "Сканирование". В каком-то цикле мониторим нажатие кнопки и выполняем шаги сканирования. Увидел нажатую кнопку - выполнил проверку на дребезг (по избранному алгоритму, например, несколькими повторными чтениями). Если нажатие достоверное - инвертируем флаг "сканирование". В противном случае просто кончаем цикл проверки кнопки (без всяких изменений), переходим к собственно сканированию. Если флаг "сканирование" установлен - выполняем очередной шаг сканирования, если нет - не выполняем, вместо этого оформляем (при необходимости) завершение сканирования (запоминание достигнутого и т.п.). И так далее по кругу. Я бы, во всяком случае, делал так. Правда, нужно признать, что при таком подходе к нуждам пользователя объем интерфейса запросто может составить половину программы и более. Тут уж разработчику решать, что для него важнее. Добавление от 18.06.2007 14:18: Правда, тут (по моему предложению) немедленно встает вопрос, что будет, если кнопку нажать и удерживать, и хорошо ли это. |
| 864. КРОКОДИЛ, 19.06.2007 01:44 |
| Dikoy Примерно так - фиксишь нажалие, потом вилом ждёшь отпускания. Потом крутишь цикл поиска, постоянно мониторя кнопу. Ну и снова - нажатие и отпускание (чтобы помехи за нажатие не принимались). Не, несоображу kак! ![]() K_AV запросто может составить половину программы и более. Обьём программы ограниченный так как мне неприслали "Мегу" изза того что их небыло на складе в момент отправки, поэтому опять приходится городить все на tiny, а у нее и памяти мало и лапок тоже не совсем хватает, так как будет еще использоватся LCD 2x16. инвертируем флаг "сканирование" Я с флагами еще не разобрался ![]() Я бы, во всяком случае, делал так Ну эта кнопка не такая уж важная и нужна больше для порядка так как проект чисто любительский и некомерческий,поэтому нужно чёнибудь попроще. Вот только не могу сообразить как происходит програмное фиксирование кнопки, -завтра/послезавтра допишу черновик пректа и выложу, тогда уже подскажите что к чему. |
| 865. K_AV, 19.06.2007 14:19 |
| КРОКОДИЛ Флаг (он же "признак") - это просто отдельный бит (1-битовая переменная), под которым подразумевается какой-то особый смысл. Например, посмотри на байт статуса МК - он весь из таких флагов состоит, за каждым битом отдельный смысл закреплен. И в других регистрах МК такие есть в изобилии. Но это "встроенные" в МК, он ими сам распоряжается большей частью, а ты только смотреть на них можешь (ну, некоторые можешь и изменять). А можно таких флагов себе для удобства поназначать сколько угодно. Самому себе в работе программы "узелок на память". Ты его сам создаешь (присваиваешь имя и подразумеваешь смысл), сам устанавливаешь в "1" или в "0" в соответствии с этим смыслом и реальными событиями. Используются, когда в программе нужно оставить следы каких-то событий, например, прошедших этапов какого-то сложного поэтапного действия. Если флагов в прогамме много - их можно упаковать в один или несколько байтов (компилятор C сделает это сам) для экономии памяти: 1 байт будет содержать в себе признаки до 8 отдельных событий. |
| 866. SAA, 19.06.2007 14:57 |
| КРОКОДИЛ С кнопками когда то поступал так, если есть задействованный счетчик который лупит с Гц частотой (скажем 200-300Гц) то выводил это меандр на ногу кнопки, с другой ноги заводил на тактирования другого счетчика, ставил счетчику либо compare либо overflow и ловил прерывание. Потом как K_AV говорил поднимаешь флаг - нажатие поймано, отрабатываешь его в глобальным цикле while (где в основном 80% спишь, остальное крутишься по прерываниям). Из этого же while хочешь процедурой с огроменным "кейсом", хочешь косвенной адресацией через ijmp/icall(что предпочтительно) ныряешь в обработку поднятого флага. |
| 867. K_AV, 19.06.2007 18:15 |
| КРОКОДИЛ Если описать процесс твоего сканирования словами: 1. Читаем состояние порта, к которому подключена кнопка "Сканирование" (или как там у вас в программе. Я не в курсе - может, читается состояние всех кнопок оптом, а потом среди них смотрится на получившееся состояние этой кнопки). 2. IF-THEN-ELSE - если кнопка не нажата - идем на выход из процедуры обработки сканирования (сканирование закончили, не начав). - если кнопка нажата - начинаем ее снова циклически осматривать, пока (WHILE) не обнаружим, что она наконец отпущена. Т.е. программа крутится на одном месте и ждет. терпеть не могу бесконечных циклов с выходом только по независимому от МК внешнему событию 3. Циклически проверяем состояние той же кнопки. (WHILE) - если кнопка не нажата - выполняем один цикл поиска (изменяем частоту на 1 шаг, ждем установления частоты, проверяем, что из этого получилось в плане приема сигналов). Возврат на повтор цикла WHILE. - если кнопка нажата: -- запоминаем достигнутое значение частоты; -- запускаем еще один цикл WHILE - ждем, пока кнопка не будет отпущена (точно, как и в п.2). После этого произойдет завершение этого цикла WHILE. -- завершаем выполнение цикла WHILE, запущенного в п.2. Собственно все, сканирование завершено. Ну, еще в процессе изменения частоты нужно проверять, не дошли ли до конца заданного диапазона. |
| 868. КРОКОДИЛ, 20.06.2007 03:22 |
| SAA если есть задействованный счетчик который лупит с Гц частотой (скажем 200-300Гц) Не,такого низкочастотного счетчика у меня в системе нет ![]() K_AV Я не в курсе - может, читается состояние всех кнопок оптом, не,не так, Вот выкладываю заготовку проекта -правда еще сильно недоработанный. код:/***************************************************** кнопки в функции void choice_channel (void){ K_AV -- завершаем выполнение цикла WHILE, запущенного в п.2. Не, я так широкомасштабно несоображу, тем более что пока еще плаваю в СИ. ![]() Еслиб пример какой нибудь,- лучше один раз увидеть...... //интересно а можно ли при нехватке лапок задействовать какую нибудь лапку порта А Добавление от 20.06.2007 03:34: K_AV |
| 869. SAA, 20.06.2007 07:46 |
цитата: Раз нет так заведи его, в AVR как минимум 2 таймера/счетчика |
| 870. КРОКОДИЛ, 20.06.2007 09:13 |
| SAA Раз нет так заведи его, в AVR как минимум 2 таймера/счетчика то выводил это меандр на ногу кнопки, с другой ноги заводил на тактирования другого счетчика Я ж говорю -на ATtiny2313 ножек нехватит. ![]() |
| 871. SAA, 20.06.2007 09:30 |
цитата: Нехватает ног? Тогда часть аппаратного алгоритма ляжет на сам AVR - полоть по тому же таймеру, читая порт кнопки (откуда она будет с "0" или "1"), взводить флаг flPRESS после успешного чтения 10 раз подряд например "1" (если при это 10 раз подряд читается "0" то поступать наоборот flPRESS опускать) и отрабатывать флаг в основном цикле. Если нужен автоповтор нажатия то либо новым счетчиком/таймером, либо программный счетчиком отрабатывать задержку при взведенном flPRESS и взводить flREPEAT (сбрасывать flREPEAT как только flPRESS = 0). При взведенном flAUTOREPEAT этим же счетчиком которым заводили задержку срабатывания автоповтора отмерять интервал повтора и взводить flREPEATPRESS, котрый отрабатывать в основном цикле и сбрасывать сразу же после отработки. |
| 872. Dikoy, 20.06.2007 16:54 |
| K_AV Много раз наблюдал, как люди в таком интерфейсе путались (когда программа ждет отпускания кнопки). Чтоб не путались, по нажатию включаем зумер или светодиод. Увидел нажатую кнопку - выполнил проверку на дребезг (по избранному алгоритму, например, несколькими повторными чтениями). Тут тоже затык - часто народ задержку на нажатие воспринимает как неконтакт и давит на кнопу со всей дури. Вояки мне клавиатуры за месяц ломали... ![]() КРОКОДИЛ В простейшем случае так: код:Это не сказать, что супер правильно, зато просто. Добавление от 20.06.2007 17:01: Но с дребезгом один фиг надо бороться схемотехнически, то есть RC цепочками. По опыту - ни один софтовый метод с RC не сравнится. Так что даже при введении в программу проверки дребезга, RC обязательно! |
| 873. КРОКОДИЛ, 21.06.2007 03:13 |
| Dikoy Много раз наблюдал, как люди в таком интерфейсе путались (когда программа ждет отпускания кнопки). Чтоб не путались, по нажатию включаем зумер или светодиод. Увидел нажатую кнопку - выполнил проверку на дребезг (по избранному алгоритму, например, несколькими повторными чтениями). Тут тоже затык - часто народ задержку на нажатие воспринимает как неконтакт и давит на кнопу со всей дури. Вояки мне клавиатуры за месяц ломали... Незнаю,мне и моим подопечным неразу даже в голову не пришло чтоб нажать кнопку и держать ее, хотя через меня прошло несколько тысяч фирменных апаратов с таким интерфейсом,-обычно кратковременное нажатие и побежала частота,-повторное нажатие остановка. Вот с кнопками передачи такое иногда бывает -нажал человек на кнопку и кричит в микрофон минут 15 неотпукая кнопку и удивляется почемуже это ему диспетчер за 15 минут ниразу неоветила ![]() Но с дребезгом один фиг надо бороться схемотехнически, то есть RC цепочками. По опыту - ни один софтовый метод с RC не сравнится. Так что даже при введении в программу проверки дребезга, RC обязательно! Теоретически, на одну лапу можно неограниченное число кноп повесить. Практически... Ну, штук 8 можно. С кнопами разберусь как нибудь -може микру другую еще найду,сейчас нужно с програмами разобратся. В простейшем случае так: Спасибо! буду разбиратся. Ты смотрел кнопы которые я написал? Меня интересует кнопа "вверх" и кнопа "вниз" -можно ли для if писать сразу несколько условий в скобках? Компилятор раз пропускает такие записи, раз не пропускает..... Но я думаю что скорей всего компилятор глючит.-в ближайшее время поробую переустановить.Dikoy Кстати выяснилась одна неприятная особенность применения МК в передающей технике- при попадании МК под излучение собственного же передатчика все данные в еепроме разрушаются хотя передатчик не шибко то мощный =10ват максимум,причем вся остальная программа не нарушается. |
| 874. K_AV, 21.06.2007 15:02 |
| КРОКОДИЛ Во-первых, по определению: 1.4.4. Оператор if Формат оператора: if (выражение) оператор-1; [else оператор-2;] Выполнение оператора if начинается с вычисления выражения. Далее выполнение осуществляется по следующей схеме: - если выражение истинно (т.е. отлично от 0), то выполняется оператор-1. - если выражение ложно (т.е. равно 0),то выполняется оператор-2. - если выражение ложно и отсутствует оператор-2 (в квадратные скобки заключена необязательная конструкция), то выполняется следующий за if оператор. Как видно, выражение в IF должно быть одно. Во-вторых, есть такая штука в языке C: 1.3.11. Операция последовательного вычисления Операция последовательного вычисления обозначается запятой (,) и используется для вычисления двух и более выражений там, где по синтаксису допустимо только одно выражение. Эта операция вычисляет два операнда слева направо. При выполнении операции последовательного вычисления, преобразование типов не производится. Операнды могут быть любых типов. Результат операции имеет значения и тип второго операнда. Отметим, что запятая может использоваться также как символ разделитель, поэтому необходимо по контексту различать, запятую, используемую в качестве разделителя или знака операции. Запятая имеет наименьший приоритет в порядке выполнения операций. Это то, что у тебя в результате под IF() написано. Зачем оно тебе надо - неясно. Если тебе требуется одновременное выполнение этих двух условий (которые в скобках просле IF) - нужно между ними не запятую, а "&". Тогда в скобках будет одно выражение - результат выполнения этого "лог.И", а каждый из операндов для него предварительно вычисляется. А ошибку компилятор тебе выдавал в твоем примере код:не по поводу IF(), а из-за того, что после последней команды перед IF точка с запятой не стоит (вроде как признака конца предыдущей команды не было, а уже вроде новая команда пошла. Компилятор в растерянности...).ABC= REGN Я правильно понял, в чем у тебя была проблема? дополнительно можно отметить, что написанное у тебя "while(1) {}" - это бесконечно выполняемый цикл, т.к. внутри скобки - константа "1", которая всегда "не 0" и нет причин для прекращения выполнения цикла while. |
| 875. Dikoy, 21.06.2007 15:14 |
| КРОКОДИЛ при попадании МК под излучение собственного же передатчика все данные в еепроме разрушаются хотя передатчик не шибко то мощный =10ват максимум,причем вся остальная программа не нарушается. Ну дык либо милитари исполнение (не продадут) либо экран. Делов то ![]() можно ли для if писать сразу несколько условий в скобках? Можно. Каждое условие даёт ответ ДА (1) или НЕТ (0). Между условиями стоят обычные логические операции И, ИЛИ и т.п. Чтобы if пропустил условия, надо чтобы из логический результат был равен 1 (то есть ДА). Иначе if их не пропускает. Тут можно использовать ещё знак отлицания "!". Т.к. НЕ ДА, или !ДА, это НЕТ и наоборот. Вот пример из моего кода: while ((PINB.0==0)&(a<1000)) { a++; }; //пока кнопа нажата "И" а меньше 1000 Если ответ на вопрос, "нажата ли кнопа?" ДА и ответ на вопрос, "мешьше ли 1000 а?" тоже ДА, то их И будет тоже ДА и while будет крутиться. Если бы там был знак ИЛИ, то цикл крутился при наличиии любого из условий. |
| 876. КРОКОДИЛ, 22.06.2007 02:31 |
| Dikoy Ну дык либо милитари исполнение А по подробней можно? ![]() while ((PINB.0==0)&(a<1000)) Понял -значит мне нужно написать вот так: if((!KEY_DOWN)&(ABC!=START_BAND)){ while (1){ ABC=(REGN + 5); }; }; или нет? - выражение (!KEY_DOWN) понятно что будет единицей при нажатой кнопке а вот (ABC!=START_BAND) неизвестно чему будет равно Ага вроде понял здесь важна не цифра а результат логической операции -верно или неверно выражение -правильно? Добавление от 22.06.2007 02:39: Dikoy Добавление от 22.06.2007 03:00: K_AV Добавление от 22.06.2007 03:11: Еще один вопрос - как мне закольцевать частоту? Вот я например нажал кнопку KEY_UP и неотпускаю -частота дошла до верхнего предела и остановилась, а мне нужно чтобы она дойдя до верхнего предела перескочила на нижний и снова начала увеличиватся - как это сделать? |
| 877. majorPAE, 22.06.2007 08:33 |
| КРОКОДИЛ Еще один вопрос - как мне закольцевать частоту? Вот я например нажал кнопку KEY_UP и неотпускаю -частота дошла до верхнего предела и остановилась, а мне нужно чтобы она дойдя до верхнего предела перескочила на нижний и снова начала увеличиватся - как это сделать? Еще один if, на значение частоты... ![]() |
| 878. K_AV, 22.06.2007 09:50 |
| КРОКОДИЛ "милитари исполнение" Многие изделия (в т.ч. микросхемы) выпускаются в нескольких вариантах, одинаковых по функционированию, но разных по стойкости к воздействующим факторам. "Commercial" - обычное, коммерческое, "Industrial" - промышленное (более широкий диапазон температур), "Automoutive" - автомобильное (еще шире температурный диапазон плюс устойчивость к вибрациям), "Military" - военное (дополнительная устойчивость к заданному перечню спецфакторов). Ну еще "Aerospace" бывает - для авиации и космоса. Так вот Dikoy и пишет, что милитари тебе не продадут .Насчет _твоего_ бесконечного цикла. Для IF условие выполнения проверяется один раз - при входе. Далее запустится твой while(1) {...} и никогда не закончится, будет крутиться бесконечно. Условия выхода из него не предусмотрено. И кнопка внутри while не проверяется. Вместо (1) напиши (!KEY_DOWN), а внутри цикла {...} вставь обновление значения этого самого KEY_DOWN. Добавление от 22.06.2007 10:07: "как мне закольцевать частоту?" |
| 879. Dismon, 22.06.2007 10:47 |
| КРОКОДИЛ Ну так здесь и нужно бесконечно понижать частоту пока нажата кнопка. У тебя получится так: если нажали кнопку, начинается бесконечный цикл, который никогда не завершится. . то, что тебе нада выглядит примерно так: код: |
| 880. Dikoy, 22.06.2007 20:11 |
| КРОКОДИЛ верно или неверно выражение -правильно? Ага. Просто в информатике под ДА принято понимать единицу, под НЕТ - ноль. |
| 881. КРОКОДИЛ, 25.06.2007 02:26 |
| majorPAE Еще один if, на значение частоты... Все гениальное всегда просто! ![]() K_AV а внутри цикла {...} Dismon то, что тебе нада выглядит примерно так: Я тут подумал немного и прокрутил програму на AvrStudio4.12 Вобщем симуляция показала что циклы while на кнопках не нужны так как каждое изменение частоты должно передаватся в синтизатор и на дисплей, а сама функция choice_channel у меня уже включена в глобальный цикл while в void main(void) поэтому достаточно одного изменения частоты за один проход цикла. Kнопки будут выглядеть примерно так:if((!KEY_DOWN)&(ABC!==START_BAND)) { delay_ms(20); ABC+5; } if(ABC==START_BAND) { ABC==END_BAND; } void main(void) { synt_init (); while (1) { choice_channel(); } ; } Добавление от 25.06.2007 02:43: Но теперь ваще стало непонятно как написать сканирование,я вот чего думаю, может завести счетчик и при каждом нажатии кнопки его инкриментировать а затем проверять на четность и при нечетных нажатиях включать сканирование а при четных выключать, только я незнаю как делается проверка на четность |
| 882. majorPAE, 25.06.2007 16:10 |
| КРОКОДИЛ Но теперь ваще стало непонятно как написать сканирование, Сканирование=регулярное нажатие кнопки увеличения частоты на заданный шаг...Палец на кнопке заменяет событие в МК: переполнение таймера, окончание задержки в N мкСек(мСек, Сек), отсутствие сигнала несущей... ![]() |
| 883. Tahoe, 25.06.2007 20:32 |
| КРОКОДИЛ Не смотрел сначала, но вот тут, видимо, есть косяк: код:Вместо "&" напиши "&&". Т.е. что бы это твоё "И" было логическое, а не арифметическое.( (!KEY_DOWN) & (ABC!=START_BAND) ) Например выражение ( 2 & 4 ) == FALSE. А выражение ( 2 && 4 ) == TRUE. В первом варианте 2 и 4 рассматриваются как числа, а во втором 2 и 4 рассматриваются как "не ноль", т.е. как true. |
| 884. КРОКОДИЛ, 26.06.2007 05:20 |
| Tahoe Т.е. что бы это твоё "И" было логическое, а не арифметическое. Спасибо! Понял. majorPAE Сканирование=регулярное нажатие кнопки увеличения частоты на заданный шаг... Не здесь у меня на писано так что кнопку достаточно нажать и удерживать а частота будет расти автоматически с каждым проходом цикла while (1) в мейне. Тока теперь непонятно как зафиксировать кнопку програмно? тоесть имитировать удержание кнопки, а при повторном ее нажатии выключать сканирование? ![]() Tahoe Не смотрел сначала, но вот тут, видимо, есть косяк: ( (!KEY_DOWN) & (ABC!=START_BAND) ) Тут я чегото запутался -в выражении (ABC!=START_BAND)при неравенстве цифры буфера цифре начала диапазона результатом выражения будет ноль или единица? В смысле частота должна понижатся только когда результатом обеих выражений будет единица, тоесть при нажатой кнопке и при неравенстве (ABC!==START_BAND) |
| 885. Tahoe, 26.06.2007 06:19 |
| КРОКОДИЛ Всё просто, на самом деле. если( истина ) { // тогда попали сюда } Заметь, никаких "1" или "0" нет. Есть "истина" и "ложь". Как это представляется в контроллере - дело десятое. В твоём случае: если( ABC != START_BAND ) ... То бишь твоё выражение ABC!=START_BAND есть "истина", когда ABC действительно _не_равно_ START_BAND. А ещё точнее: ( (!KEY_DOWN) && (ABC!=START_BAND) ) если( истина и истина ) ... Т.е. первая истина, это когда твоя KEY_DOWN==ложь ( небось сейчас тихо фигеешь, как ты круто завернул, да? на самом деле вполне нормально ). А вторая истина, когда ABC != START_BAND. И вот когда оба условия "истина", тогда твой if ( ну или while ) срабатывает. А с одним & у тебя получилось бы только одно условие, т.е. только одна "истина".Т.о. твоё выражение будет срабатывать когда оба условия выполняются, т.е. когда ( КНОПКА_НЕ_НАЖАТА ) И ( ABC НЕ РАВНО НАЧАЛУ ДИАПАЗОНА ). Когда работаешь с условием, нет никаких "1" или "0". Есть "истина" и "ложь". Если копнуть чуть глубже, то обычно "ложь" это "0", а "истина"... А вот ни фига, это не "1". Это любое число, кроме "0". ![]() Кстати, в итоге приходим к нормальному, человеческому описанию алгоритма. Т.е. "если кнопка не нажата и если *** не в начале диапазона"... А заодно и название человеческое для ABC придумать не помешает. ![]() Добавление от 26.06.2007 06:41: Тока теперь непонятно как зафиксировать кнопку програмно? код: |
| 886. КРОКОДИЛ, 27.06.2007 02:37 |
| обрати внимание, это не "2", это "не ноль", хошь можем вместо "2" поставить "9" Так а как это понять? ![]() |
| 887. Tahoe, 27.06.2007 03:25 |
| КРОКОДИЛ Так а как это понять? Как "while( истина )". ![]() |
| 888. КРОКОДИЛ, 27.06.2007 03:58 |
| Tahoe ( истина )". Понятно что истина ![]() Непонятно чем конкретно будет отличатся while( 2 ) или while( 9 ) от while( 1 ) ? Добавление от 27.06.2007 04:03: #define CLEAR ( 1 << 0 ) |
| 889. Tahoe, 27.06.2007 04:33 |
| КРОКОДИЛ Непонятно чем конкретно будет отличатся while( 2 ) или while( 9 ) от while( 1 ) ? Абсолютно ничем не будут отличаться. Потому я и акцентировал на этом внимание. #define CLEAR ( 1 << 0 ) А этот изврат для чего? Собсно как и всё остальное в программировании - для удобства. Пока не вылезаешь за 8 бит, можно, конечно, дефайнить всё как0x01 0x02 0x04 0x08 и т.д. Но даже тут удобнее написать тупо: ( 1 << 0 ) ( 1 << 1 ) ( 1 << 2 ) ( 1 << 3 ) А когда описываешь, например, на какой ноге порта висит кнопка или лампочка, тут уж имхо сам б-г велел. И, кстати, представь, какая развлекуха бывает, когда переменная или порт не 8-ми, а 32-х битный. |
| 890. psnsergey, 27.06.2007 11:21 |
| КРОКОДИЛ Непонятно чем конкретно будет отличатся while( 2 ) или while( 9 ) от while( 1 ) ? В Си принято, что лог. 0 есть нуль, а лог. 1 - всё, что не нуль - неважно, какое это число, целое или вещественное (с плавающей запятой). Дело в том, что в машинном коде проверка, нуль ли некоторое число, осуществляется быстрее всего - и именно её чаще всего и используют. |
| 891. КРОКОДИЛ, 27.06.2007 11:51 |
| Tahoe И, кстати, представь, какая развлекуха бывает, когда переменная или порт не 8-ми, а 32-х битный. Понятно Вот только не могу понять общую логику всей твоей записи - видимо я чегото недоучил ![]() Вот этой: код:#define SCAN ( 1 << 7 ) Добавление от 27.06.2007 12:03: psnsergey |
| 892. Dikoy, 27.06.2007 15:16 |
| КРОКОДИЛ #define CLEAR ( 1 << 0 ) А этот изврат для чего? Бит номер ноль (например, нулевую лапку порта или нулевой бит регистра или переменной) установить в состояние 1. CLEAR ( 0 << 6 ) - шестой бит в состояние 0 и т.д. |
| 893. КРОКОДИЛ, 28.06.2007 01:40 |
| Dikoy А это как понять? State ^= SCAN; |
| 894. Tahoe, 28.06.2007 03:00 |
| КРОКОДИЛ А это как понять? Значком "^" обозначается операция XOR ( "исключающее ИЛИ" ). Это из той же серии, что и "&" ( AND ), "|" ( OR ) или "~" ( NO ). State ^= SCAN; Это упрощённая запись вот этого: State = State ^ SCAN; Т.е. в переменной State каждый раз будет переключаться бит SCAN. Если он сейчас "1", то станет "0". Если "0", то станет "1". |
| 895. SAA, 28.06.2007 07:10 |
цитата: GCC нормально отрабатывает битовые поля, можно и так сделать: код: |
| 896. КРОКОДИЛ, 28.06.2007 08:50 |
| Tahoe Значком "^" обозначается операция XOR ( "исключающее ИЛИ" ). Это из той же серии, что и "&" ( AND ), "|" ( OR ) или "~" ( NO ). ЗЫ.А я прочел "^" как возведение в степень! -потому и ничего не понял ![]() Добавление от 28.06.2007 08:57: SAA |
| 897. kirich, 01.07.2007 20:47 |
| Если кто то есть из Харькова, требуется небольшая помощь. Много раз пытался разобраться с программированием, так в итоге ничего и не вышло. ![]() Есть небольшая задачка, сдвоенный диммер с локальным управлением (никаких ДУ и пр), есть ориентировочный алгоритм управления, могу сделать всю железную часть (микруху в панель либо внутрисхемное программирование), но надо написать программу. Устройство необходимо в еденичном экземпляре, потому заказывать прогу мягко говоря накладно ![]() Если интересно, то могу тут описать алгоритм управления, может кто то поможет ![]() |
| 898. DrAG0n, 02.07.2007 04:52 |
| я такую штуку делал в своем проекте "выключатель света+вентилятора для ванной", ATMEGA8+дискреты, управление от гальв. развязанного геркона, если надо - подскажу. |
| 899. Dikoy, 02.07.2007 13:28 |
| kirich сдвоенный диммер А що це? ![]() |
| 900. kirich, 03.07.2007 00:10 |
| Dikoy А що це? Правильнее все таки было бы назвать строенный. Полочка над кроватью, на ней смонтировано 3 галогенки. Возле крайних стоят сдвоенные кнопки (переделанный обычный импортный выключатель, потому возможна регулировка кнопками +\- , и таких получается 2 клавиши). Одна клавиша регулирует яркость установленной рядом с ней лампы (соотв возле второй крайней лампы такой же выключатель). Вторая регулирует +\- средней лампы (возле второй крайней лампы стоит такой же, запараллелен с первым), но при включении или начале регулировки, передается управление к крайним лампам. При включении все лампы начинают светить с одной яркостью. Либо какая то минимальная, либо такая как у лампы с минимальной яркостью на данный момент. После этого при помощи второй клавиши (которая запараллелена с другой такой же, расположенной с противоположного края) регулируем синхронно яркость всех 3 ламп. Если после этого нажать на + или - первой клавиши, то расположенная рядом лампа остается светить как светила, 2 другие выключаются, и после этого управление яркостью этой лампы передается клавише которая установлена рядом с ней. (Но если клавиша была нажата не во время свечения всех ламп, то она только регулирует яркость лампы которая рядом с ней. Регулировка может быть как по переменке 220 или 12 Вольт (лампы галогенки, транс 50Гц, либо импульсный, который допускает регулировку с симистором на входе), так и по постоянке (импульсный БП, регулировка ШИМ с использованием ключа на полевике). Т.е. имеем 3 регулятора яркости, 2 из них управляются индивидуально, 1 может управлять всеми тремя нагрузками одновременно. Решение, либо 3 регулятора с обменом кто кем управляет, либо 1 проц, который всем занимается. Управление либо режим +\- где клавиша имеет 2 режима, либо 1 контакт, по алгоритму как в К145АП2 (нажал-отпустил, вкл или выкл, пождержал регулировка + или -) Попробовал нарисовать блок-схему, если что непонятно, пишите. ![]() К сообщению приложены файлы: 1.gif |
| 901. Dikoy, 06.07.2007 15:43 |
| КРОКОДИЛ Ты вот эту микросхемку (http://focus.ti.com/docs/prod/folders/print/tle4275-q1.html) видел? Параметрический стабилизатор, заточен на питание от бортсети, встроенный супервайзер и стартовый ресет! ![]() |
| 902. КРОКОДИЛ, 07.07.2007 02:49 |
| Dikoy Ты вот эту микросхемку видел? Не,раньше невидел. Скачал даташит,- интересная штуковина. Очень интересно как она поведет себя в реале? Особенно в советских авто? Меня больше интересует сохранность аппаратуры при переполюсовке или при выходе из строя регулятора напряжения бортсети! -это довольно чАсто происходит.А еще бывает что юзер при работающем двигателе снимает аккумулятор! ![]() Добавление от 07.07.2007 03:10: Pyku_He_oTTyda |
| 903. Dikoy, 07.07.2007 15:02 |
| КРОКОДИЛ Очень интересно как она поведет себя в реале? Да думаю нормально... Поставь резистор ом дцать и стабилитрончик вольт на 27. Хотя там в этой серии много микрух, есть с уже встроенной защитой, но без супервайзера и ресета... |
| 904. Pyku_He_oTTyda, 07.07.2007 17:39 |
| КРОКОДИЛ Написал |
| 905. КРОКОДИЛ, 08.07.2007 02:37 |
| Dikoy Да думаю нормально... Попробую найти на наших Украинских фирмах. Поставь резистор ом дцать и стабилитрончик вольт на 27. Не, я ставлю предохранитель а после него два мощных 16вольтовых стабилитрона впаралель с плюса на минус, и еще два мощных диода паралельно стабилитронам -защита от переполюсовки, а потом уже 7805 микру с эмитерным повторителем на КТ819, -шибко громоздко получается но зато надежно, -даже если вся проводка в авто сгорит трансивер живой останется. |
| 906. Dikoy, 09.07.2007 03:44 |
| КРОКОДИЛ а после него два мощных 16вольтовых стабилитрона впаралель с плюса на минус, и еще два мощных диода паралельно стабилитронам -защита от переполюсовки Всё это решается одним TVS диодом А эмиттерный повторитель штука хорошая, только транзюк то до 50 вольт вроде, а должОн до 160 держать, чтобы толк был... ![]() |
| 907. Большой ЮХ, 10.07.2007 16:09 |
| Доброго дня. Чтото я совсем залип. Не работает таймер(( остается в цикле тайммера навсегда: код: |
| 908. КРОКОДИЛ, 11.07.2007 01:48 |
| Dikoy Всё это решается одним TVS диодом У нас цивилизация еще до этого недошла! ![]() а должОн до 160 держать, чтобы толк был... Так два мощных стабилитрона перед микросхемой и обрезают выбросы до 16 вольт А два в паралель чтобы ток стабилизации увеличить - чтобы предохранитель вовремя расплавился -тоесть при сильно повышенном напряжении избыточный ток пойдет не через схему а через стабилитроны. |
| 909. Dikoy, 11.07.2007 03:09 |
| КРОКОДИЛ тоесть при сильно повышенном напряжении избыточный ток пойдет не через схему а через стабилитроны. А их ёмкость не слишком офигительная? ИМХО от коротких выбросов они совсем не спасут... Тут только индуктор с капацитором... |
| 910. КРОКОДИЛ, 12.07.2007 01:30 |
| Dikoy Тут только индуктор с капацитором... С кем? C кем? ![]() |
| 911. Dikoy, 12.07.2007 02:35 |
lc ![]() |
| 912. КРОКОДИЛ, 12.07.2007 02:52 |
| Dikoy Ну дык LC фильтр по питанию в автомобильной технике это само собой разумеется ![]() |
| 913. Apex_t, 19.07.2007 17:35 |
| DrAG0n делал в своем проекте "выключатель света+вентилятора для ванной", ATMEGA8+дискреты, управление от гальв. развязанного геркона Выложи, если можешь, проект. |
| 914. КРОКОДИЛ, 31.07.2007 00:49 |
| ALL Есть ли у кого нибудь описание алгоритма работы частотомера на руском языке или пример програмы для него на Си для AVR? Если есть то поделитесь пожалуйста. |
| 915. Dikoy, 31.07.2007 01:42 |
| Смотря чем ты частоту мерить собрался - программно или таймером. Последнее ещё зависит от самого МК. |
| 916. КРОКОДИЛ, 31.07.2007 12:27 |
| Смотря чем ты частоту мерить собрался - программно или таймером. Последнее ещё зависит от самого МК. А как лучше??? ![]() Я хотел придумать чтото типа вот этого - http://www.cqham.ru/trx81_02.htm но хлопцы уже придумали до меня, хочу только заменить PLL на более высокочастотный - до 2,8гига. Взял у них исходник, а он на асемблере И кусочками -каждая подпрограмма отдельным файлом -короче вообще нифига немогу понять! |
| 917. Dikoy, 31.07.2007 13:45 |
| Счётчиком лучше, но сложнее. Так спроси у них, в какой подпрограмме идёт обмен с микрой. Какую именно ты хош взять? |
| 918. КРОКОДИЛ, 01.08.2007 02:11 |
| Dikoy Так спроси у них, в какой подпрограмме идёт обмен с микрой. Какую именно ты хош взять? Там написанно, но только на асме смысл непонятен ![]() Какую именно ты хош взять? LMX2326. |
| 919. КРОКОДИЛ, 02.08.2007 03:03 |
| Dikoy Вот положил сюда архив с прожектом - http://slil.ru/24692833 |
| 920. Dikoy, 03.08.2007 04:05 |
| Завтра почитаю. У меня отпуск с 6-го, по этому сейчас весь на ушах - подбираю хвосты, всё оформляю Некогда... |
| 921. КРОКОДИЛ, 03.08.2007 16:59 |
Отпуск это хорошо!!! И время выбрал удачное - жара пошла уже на убыль - водка не такая теплая будет ![]() |
| 922. Dikoy, 04.08.2007 04:02 |
| КРОКОДИЛ Это у вас там в приазовье жара... А у нас неделю уже дожди, а поедем мы компашкой в зеленя, за 800 км, на Дон (примерно 400 км восточнее Луганска, но на российской территории). ХЗ какая там погода ![]() Твой архив почитал - ничерта не понятно. Писал любитель, код путаный, коментов нет... Что где происходит и как понять можно. Тока если б он как в Си задефайнил ВСЕ значения. А то он в equ описал от силу половину... Что-нить поменяешь, и ой. ИМХО проще с нуля написать на Си, чем разбирать ту многоэтажку... |
| 923. КРОКОДИЛ, 04.08.2007 10:43 |
| Dikoy ИМХО проще с нуля написать на Си, чем разбирать ту многоэтажку... Так я ж потому про алгоритм и спрашивал, как LMXой управлять я уже знаю а как остальное написать ХЗ. Мой частомер работает только до 230мгц а хотелось бы повыше. А фирменный приборчик который до трех Гиг меряет у нас стоит от 300 до 500$ -не по карману.А тут какраз получил 48мые меги и дисплеи 2х16 -какраз можно и частотомер сваять а вторую строку приспособить чтоб уровень вч сигнала через АЦП показывала ,может к зиме и програму напишу. |
| 924. Dikoy, 04.08.2007 15:56 |
| КРОКОДИЛ Ну дык спросил бы у них описалово. Я так понял, частоты до сколько-то там они мериют самим МК. В программе есть инициализация таймера. то есть по первому изменению порогового детектора (идёт прерывание) на входе счётчик запускается, по второму он останавливается и считывается его значение. Дальше математика. Каким образом через LMX работает я не знаю. |
| 925. КРОКОДИЛ, 05.08.2007 03:52 |
| Dikoy Каким образом через LMX работает я не знаю. Они используют только часть LMX просто как внешний делитель частоты, а контролер выдает на него неизменный код который обеспечивает постояннвй не меняющийся коофициент деления, а далее идет самый обычный частотомер. В программе есть инициализация таймера. то есть по первому изменению порогового детектора (идёт прерывание) на входе счётчик запускается, по второму он останавливается и считывается его значение. Дальше математика. Так вот это мне и непонятно как програмно организовать?, и методику расчетов тоже незнаю ![]() |
| 926. Dikoy, 05.08.2007 21:17 |
| КРОКОДИЛ Так вот это мне и непонятно как програмно организовать?, По пенрвому прерыванию (первое или второе определяешь по состоянию флажка) записываешь в таймер число, которое соответствует его настройке. Это и есть старт. По второму прерыванию пишешь 0. Параллельно, из регистра таймера считываешь, сколько он насчитал. Тут в теме про МК это разжёвано, поищи. |
| 927. КРОКОДИЛ, 06.08.2007 01:33 |
| Dikoy По второму прерыванию пишешь 0. Так а прерывания ваще откуда там берутся? или вернее от чего? |
| 928. КРОКОДИЛ, 08.08.2007 02:59 |
| ALL У меня сегодня кодевижен сошел с ума -при попытке компилировать ране нормально компилировавшийся проект выдает табличку "Error occured during assembly." Что переводится примерно как "Ошибка произошла во время сборки" Потом оказалось что табличка выскакивает при компиляции любого проекта, и даже проектов из примеров самого кодевижена! В навигаторе появляется надпись "Undefined symbol:_main" которая указывает на листинг асемблера и в частности на надпись "RJMP _main". Переустановка кодевижена абсолутно ничем не помогла. ![]() Какие могут быть причины??? |
| 929. Tahoe, 08.08.2007 03:42 |
| КРОКОДИЛ Какие могут быть причины??? Есть такая штука, называется cstartup. Это маленькая программка, с которой процессор начинает работу. Условно говоря, это один и тот же код, который добавляется в начало каждого твоего проекта. Она выполняет ряд неких стандартных действий (например чистит память, инициализирует переменные) и передаёт управление твоему объектнику. Это всё лирика, просто что б ты понимал, как оно там устроено. Так вот, этот cstartup передаёт управление... правильно, _main. Это тот самый rjmp, который ты видишь. "Undefined symbol:_main" означает, что у тебя отсутствует модуль _main. Где там в кодевижн оно меняется, не знаю. А в ИАРе это радиокнопка, на два положения, в свойствах проекта, которая выбирает куда прыгать после cstartup, на "_main" или "application defined". Но думаю ты понял, что примерно искать. |
| 930. КРОКОДИЛ, 08.08.2007 07:54 |
| Tahoe Но думаю ты понял, что примерно искать. Да, ща поищу. Еще один вопрос: я тут дописываю синтезатор для любительского трансивера, так вот основная програма заняла примерно 54% флеши,а когда стал дописывать дисплей то столкнулся с непонятным явлением -написал буквально пять строчек и обьем програмы сразу же в полтора раза превысил обьем памяти тиньки! -Это так должно быть? или я чтото неправильно пишу? |
| 931. Pyku_He_oTTyda, 08.08.2007 10:26 |
| Может софтовых задержек напихали? |
| 932. Tahoe, 08.08.2007 16:01 |
| КРОКОДИЛ написал буквально пять строчек и обьем програмы сразу же в полтора раза превысил обьем памяти тиньки! Ну дык - "строчки в сутдию". ![]() |
| 933. i8080, 08.08.2007 16:48 |
| КРОКОДИЛ У меня сегодня кодевижен сошел с ума -при попытке компилировать ране нормально компилировавшийся проект..."Undefined symbol:_main"... Похожий случай: http://www.pro-radio.ru/controllers/4361/ |
| 934. КРОКОДИЛ, 09.08.2007 02:42 |
| i8080 У меня эта ссылка почемуто не открывается. ъPyku_He_oTTyda Tahoe Ничего я непихал, -взял со стандартного примера в кодевижене. int temp; lcd_init(16); while (1) { sprintf(lcd_buffer,"t=%c%i.%u\xdfC",temp/10,temp%10); lcd_clear(); lcd_puts(lcd_buffer); delay_ms(200); } Добавление от 09.08.2007 02:45: Tahoe |
| 935. Tahoe, 09.08.2007 03:15 |
| КРОКОДИЛ 1. Декларацию lcd_buffer[] ты не привёл. Соотв., никто не знает, какого размера этот буфер. 2. Есть у меня подозрение одно. Процессоры бывают Неймановской или Гарвардской архитектуры. AVR это Гарвард. Т.е. у него шины адреса и данных раздельные. Соотв. и память флеш и RAM разные. Посмотри, возможно у тебя не флеш-памяти не хватает, а SRAM, которой гораздо меньше, чем флеш. Возможно ты её и зажрал всю своими буферами. Или у тебя именно флеш зажрался? Добавление от 09.08.2007 03:19: Ненашел в вижене даже примерно ничего похожего Добавление от 09.08.2007 03:27: Упс, поспешил я. Наверное вот тут sprintf(lcd_buffer,"t=%c%i.%u\xdfC",temp/10,temp%10); библиотеки жирные подсосались, из-за деления. |
| 936. КРОКОДИЛ, 09.08.2007 03:46 |
| Tahoe Декларацию lcd_buffer[] ты не привёл int. Или у тебя именно флеш зажрался? Да вобщем 1370 чегото там получилось - наверно байт, а лимит 1024. библиотеки жирные подсосались, из-за деления. Да скорее всего так и есть, когда вправлю мозги вижену то перепишу под мегу48 -только с даташитом разберусь. Кстати что на лапки АЦП нужно вешать? Обычный лестничный делитель? Так что спрашивай того, кто тебе его насоветовал А чё -нормальный компилер,мне нравится , -на другой переходить нехочу -потому что буду с новым интерфейсом еще год разбиратся Вообще у него крыша сьехала после того как регистрация кончилась и я его пропатчил по новой -тогда он и стал глючить -даже переустановка непомогла ![]() Добавление от 09.08.2007 04:38: Урра!!! Вправил мозги кодевижену!!! |
| 937. Tahoe, 09.08.2007 05:54 |
| КРОКОДИЛ Кстати что на лапки АЦП нужно вешать? Обычный лестничный делитель? Вход АЦП довольно низкоомный. Так что всё зависит от источника. По-уму, поставь операционник, по схеме повторителя. А в идеале, лучше на этом операционнике ФНЧ сгородить. на другой переходить нехочу -потому что буду с новым интерфейсом еще год разбиратся Одно из достоинств IAR, кстати. Перелезаешь на другой процессор, а работаешь всё в том же IAR. Не говоря уж о том, что для AVR это один из самых оптимальных компиллеров. Само AVR-ядро Атмеловцы разрабатывали вместе с IAR-овцами. Вот так-то. Да вобщем 1370 чегото там получилось - наверно байт, а лимит 1024. А ты смотри, что он пишет. CODE-memory или DATA-memory. Но раз у тебя тини, то речь, видимо, о флеш, т.е. CODE-memory. |
| 938. КРОКОДИЛ, 09.08.2007 11:02 |
| Tahoe По-уму, поставь операционник, по схеме повторителя. Ну так там пять лапок на 48 меге, я чтото слабо вьезжаю как работают встроенные АЦП контролеров, это как сначала сначала сигнал с операционника на делитель, а с делителя уже на лапки? Одно из достоинств IAR, кстати. Так а где его спереть можно?-я в прошлый раз ненашел халявного. ![]() И еще вопрос:- на некоторых схемах лапки контроллера используются одновременно для дисплея и для кнопок,- как это можно реализовать програмно?- а то мне все время лапок нехватает ![]() видимо, о флеш, т.е. CODE-memory Сейчас вижен заработал,посмотрел -да флеш. |
| 939. Tahoe, 09.08.2007 17:05 |
| КРОКОДИЛ я чтото слабо вьезжаю как работают встроенные АЦП контролеров, это как сначала сначала сигнал с операционника на делитель, а с делителя уже на лапки? А с какой тайной целью, ты всё делитель норовишь прикрутить? ![]() Так а где его спереть можно?-я в прошлый раз ненашел халявного. www.iar.com А лекарство на ьлйже сахаре посмотреть можно. на некоторых схемах лапки контроллера используются одновременно для дисплея и для кнопок,- как это можно реализовать програмно? Да точно так же, как опрос кдавиатурной матрицы, например 4х4. Просто сигнал опроса задействован ещё и для динамической индикации. |
| 940. КРОКОДИЛ, 10.08.2007 02:42 |
| Tahoe А с какой тайной целью, ты всё делитель норовишь прикрутить? А х.з. В седой древности когда я был студентом АЦП работали так- на резисторах делался ступенчатый делитель а к нему уже подключалась микросхема см. рис. И с тех пор я с АЦП не сталкивался -поэтому и задаю может быть глупые вопросы. Или здесь все уже внутри мк? а пять лапок это пять независимых АЦП? тоесть четыре лапки отключить и только на одну подавать сигнал? Просто сигнал опроса задействован ещё и для динамической индикации. А как это выглядит -можешь пример какой нить кинуть?-мне 4х4 ненадо - достаточно будет просто 4 кнопок. К сообщению приложены файлы: 1.gif |
| 941. Tahoe, 10.08.2007 03:28 |
| КРОКОДИЛ В седой древности когда я был студентом АЦП работали так- на резисторах делался ступенчатый делитель а к нему уже подключалась микросхема см. рис. То, что ты нарисовал, это скорее походит на "самодельный АЦП на коленке". Тебе эти извраты не нужны, всё давно внутри встроено. Т.е. тебя должны интересовать только нога ARef и нога входа. АЦП, именно как преобразователь, там внутри один, конечно. Но перед ним стоИт аналоговый мультиплексор. Вот на его входы ты и подаёшь сигнал. Входы, в общем случае, довольно низкоомные. Потому, что бы не подсадить сигнал, требуется для согласования поставить буфер ( операционник ).а пять лапок это пять независимых АЦП? Выше уже написал, но см. даташит на ТИНИ26 ( у тебя она? ): "Figure 51. Analog to Digital Converter Block Schematic". А как это выглядит -можешь пример какой нить кинуть?-мне 4х4 ненадо - достаточно будет просто 4 кнопок. AVR242: 8-bit Microcontroller Multiplexing LED Drive & a 4x4 Keypad (http://www.atmel.com/dyn/resources/prod_documents/doc1231.pdf) и исходники к этой аппликухе (http://www.atmel.com/dyn/resources/prod_documents/Avr242.zip) . Вообще рекомендую поутюжить вот тут: http://www.atmel.com/dyn/products/app_notes.asp?family_id=607 Там есть ответы на многие вопросы. Причём многие с исходниками/проектами ( в основном под IAR ). |
| 942. КРОКОДИЛ, 10.08.2007 03:52 |
| Tahoe но см. даташит на ТИНИ26 ( у тебя она? ): Не я щас мегу48 мучаю -как мартышка и очки! Это я пытался написать прогу на тиньку2313 а туда дисплей не влез! -Решил перейти на мегу, а у нее еще и АЦП есть -решил и его задействовать -короче чем больше возможностей тем больше апетит ![]() Но перед ним стоИт аналоговый мультиплексор. Вот на его входы ты и подаёшь сигнал Так мне только одна лапка нужна ![]() в основном под IAR Был я у них на сайте -там нужно регистрироватся- посмотрел сколько там всего на английском заполнять нужно и чуть инфаркт не получил ![]() А какой у него обьем у IAR ? Добавление от 10.08.2007 04:06: Tahoe |
| 943. Tahoe, 10.08.2007 07:26 |
| КРОКОДИЛ Так мне только одна лапка нужна Ну дык и выбирай любую, какую удобнее по разводке. Из числа тех, которые вход АЦП, само собой. А какой у него обьем у IAR ? Наверное сейчас мегабайт 50-60. Был я у них на сайте -там нужно регистрироватся- посмотрел сколько там всего на английском заполнять нужно и чуть инфаркт не получил А что там смущает? Ты главное почту существующую укажи. ![]() Так а что это за нога? -я из даташита так и не понял И еще непонятно назначение лапки AVCC. AREF, это нога, на которую подаётся референсное напряжение. Т.е. АЦП будет измерять от 0 Вольт до напряжения на ноге AREF. AVCC, это отдельная нога питания для аналоговой части АЦП. Что бы можно было запитать АЦП от "чистого" напряжения. Один из простых вариантов, это как в ДШ, просто подать питание с ноги VCC, но через LC-фильтр, т.е. дроссель и конденсатор. |
| 944. КРОКОДИЛ, 10.08.2007 08:16 |
| Tahoe Ну дык и выбирай любую, какую удобнее по разводке. Из числа тех, которые вход АЦП, само собой. А остальные отключить в визарде? или неимеет значения? ![]() Наверное сейчас мегабайт 50-60 Это многовато для моего тырнета. ![]() А что там смущает? Английский язык. Я на Keil целую ночь разбирался в регистрации А они мне теперь постоянно свои новые проспекты высылают -так самое обидное то что ихняя прога так и не понадобилась ![]() Т.е. АЦП будет измерять от 0 Вольт до напряжения на ноге AREF. Круто! А я даже и незнал про такие тонкости. ![]() Кстати как посоветуешь грамотно распредилить лапки на меге48? Мне нужно подключить стандартный дисплей 2х16,клавиатуру, PLL и пару светодиов.Уже два дня смотрю на даташит и немогу сообразить как это правильно сделать чтоб ничего немешало друг другу, кварцу и програматору. ![]() |
| 945. КРОКОДИЛ, 17.08.2007 03:10 |
| Dikoy А можешь написать как и какие фузы нужно запрограмировать на меге48 чтоб она работала с кварцевым резонатором? |
| 946. pdk, 17.08.2007 11:39 |
| подскажите где найти пример чтения iButton ( желательно с++) ...уже нашел. У CodeVision есть такой пример и библиотека. |
| 947. Apex_t, 20.08.2007 21:52 |
| Отладить можно в PROTEUS - там есть модели 1-wire |
| 948. Dikoy, 20.08.2007 22:21 |
| КРОКОДИЛ Ничего я непихал, -взял со стандартного примера в кодевижене. Дык под той строчкой скрывается туева хуча кода, который компилятор вставляет в твой хекс заместо этой строчки при сборке. Спринтф вообще коварная штука... Памяти хавает немеряно, но зато универсальная до жути. Ну так там пять лапок на 48 меге, я чтото слабо вьезжаю как работают встроенные АЦП контролеров, Там всё внутри, и АЦП, и коммутатор (он же мультиплексор). Как только ты в визарде включил АЦП, ножки МК перестают быть цифровыми лапами и становятся аналоговыми входами с размахом от 0 до напряжения на ARef. Туда ты можешь подать напряжение с внешнего ИОНа или напряжение питания. Входной диапазон АЦП будет равен напряжению на входе ARef. Тока посмотри предельные значения по напряжению ![]() Ну и всё. Визард тебе сгенерит единственную функцию, которой ты сможешь считать код (именно код!) с любой из лапок. Потом этот код надо привести к величине (если надо). Например, к вольтам. Aref=2,5V. АЦП в восьмибитном режиме, то есть дискретность 256 точек на диапазон. Значит, 2,5/256=дискретность_в_вольтах. Эту дискретность умножаешь на считанный тобой код (например, 125) и получаешь входное напряжение в вольтах. Вот и всё. Добавление от 20.08.2007 22:27: КРОКОДИЛ |
| 949. КРОКОДИЛ, 21.08.2007 08:04 |
| Dikoy Памяти хавает немеряно, но зато универсальная до жути. Эт я уже понял ![]() Визард тебе сгенерит единственную функцию, которой ты сможешь считать код (именно код!) с любой из лапок. Потом этот код надо привести к величине (если надо). Мне одна лапка нужна, а визард просит 5 буферов -тоесть можно оставить один а остальные выключить? Как только ты в визарде включил АЦП, ножки МК перестают быть цифровыми лапами и становятся аналоговыми входами Это плохо -мне опять нехватает лапок, а с кодом клавиатуры 4х4 пока немогу разобратся ![]() Например, к вольтам Может лучше к миливольтам? -Потому что с вольтами получится куча дробных чисел с которыми не хотелось бы пока связыватся, а вообще хочу перевести показания АЦП в графический вид -тоесть бегущюю дорожку из квадратиков или вертикальных черточек -как на фирменных трансиверах.Тока пока незнаю как это сделать. ![]() И пока вообще еще не разобрался как выводить АЦП на дисплей -в разных примерах все по разному ![]() Смотря на какую частоту... Ваще хотел на 10МГЦ, но могу пересчитать прогу на другую частоту -можно и на 20МГЦ. А какую нужно выставлять частоту для АЦП в визарде? А вообще мне много непонятно с лапками. Начал рисовать схему и запутался Вот смотри: на порту В висит кварец и еще будет висеть STK200 -тоесть дисплей вешать нельзя, -соответственно вешам его на порт D, а на остатки порта В нужно както изловчится и повесить кнопы и PLL.-как это грамотно сделать? И нужно ли подлючать хидер <STK LCD>? И как сделать чтобы лапка ресет стала именно ресетом?Вот такая куча вопросов возникла при переходе на мегу48 ![]() |
| 950. 676038, 21.08.2007 16:06 |
| КРОКОДИЛ Я в сврем проекте на порт В (и порт D немного, PB1 ушел для ШИМ регулировки яркости подсветки) меги48 повесил и разъем для программирования (ISP), и ЛСД дисплей - все работает нормально (см. мою схему во вложении). Выводы дисплея назначены так: код:Даже получил побочный эффект - в процессе програмирования по дисплею пробегает всякий сор - очень наглядно, что программирование идет . Добавление от 21.08.2007 16:12: Забыл добавить, что LCD аппарратно настроен только на ввод (вывод R/W подключен к GND) К сообщению приложены файлы: 1.png |
| 951. Dikoy, 21.08.2007 18:32 |
| КРОКОДИЛ Ваще хотел на 10МГЦ, Там важно до 8 МГц или больше ![]() и еще будет висеть STK200 -тоесть дисплей вешать нельзя, Пачиму? Если девайс расчитан на SPI интерфейс, он поддерживает параллельное полключение с другими. Дисплей тебе ничего не отвечает, только принимает (в большинстве случаев). Максимум при программировании там фигня будет. Вообще, дисплей куда хош вешай. Не гонись за тем, чтобы всё было на одном порту. МК пофиг, можешь хоть по всем портам свой LCD раскидать ![]() Ресет по умолчанию ресет. Не трогай его. Лапку настрой как In P. И нужно ли подлючать хидер <STK LCD>? Да подключи, хуже не будет ![]() Если функций из него не попросят, в хекс он не попадёт. Вообще определись, для каких железок тебе нудны аппаратные ресурсы МК. Туда их и подключи. А всё что осталось раскидай по оставшимся лапам как удобно. Я вообще, бывает, при разводке меняю дефайны, если мне удобней назначить лапки именно так. Добавление от 21.08.2007 18:38: КРОКОДИЛ |
| 952. КРОКОДИЛ, 22.08.2007 08:52 |
| 676038 Визард генерит код драйверов для LCD только под целый порт, а вручную я раскидать LCD на два порта я несмогу -мозгов нехватитит ![]() Dikoy Там важно до 8 МГц или больше Ну у меня явно больше будет, а как это должно отразится на програмировании фузов? Вообще, дисплей куда хош вешай На порт В дисплей повесить наверно неполучится так как на 6 и 7 пинах висит кварцевый резонатор -следовательно дисплей можно вешать только на порт D. A PLL соответственно пойдет на порт В так как там используется только три лапки. А как быть с клавиатурой непонятно. Хорошую идею подкинул Tahoe -клавиатура 4х4 паралельно с дисплеем -но там исходник на асме и я запутываюсь в нем уже на десятой строчке ![]() Вообще определись, для каких железок тебе нудны аппаратные ресурсы МК. Туда их и подключи. А всё что осталось раскидай по оставшимся лапам как удобно Так не получается все раскидать -лапок мало ![]() Ресет по умолчанию ресет Вроде он по даташиту идет как PC6 а ресет это его альтернативное назначение? ![]() Да еще вопрос: как МК усыплять? и как его будить потом? Таблица 6 на 27 стр ДШ всё расписано Пойду сражатся с английским языком ![]() |
| 953. Tahoe, 22.08.2007 09:34 |
| КРОКОДИЛ Ну у меня явно больше будет, а как это должно отразится на програмировании фузов? CKSEL3=1 CKSEL2=1 CKSEL1=1 А CKSEL0 отвечает за размах напряжения генератора. Если low power, то =1. Если full swing, то =0. Что б помех поменьше было, лучше low power, конечно. Но если кварц г*вёный, то фигово работать/запускаться будет. но там исходник на асме и я запутываюсь в нем уже на десятой строчке А ты не смотри на исходник. Тебе надо _только_ сам принцип понять. А принцип простой - временнОе разделение. Динамическую индикацию представляешь себе? Тут то же самое, только не на вывод, а на ввод. А поскольку принцип один и тот же, то "общие аноды" используются одновременно и для вывода на индикатор, и для ввода с клавиатуры. Т.е. эту "развёртку" задействовали одновременно для двух задач. |
| 954. КРОКОДИЛ, 22.08.2007 14:04 |
| Tahoe Ну у меня явно больше будет, а как это должно отразится на програмировании фузов? CKSEL3=1 CKSEL2=1 CKSEL1=1 Спасибо ![]() Но если кварц г*вёный, то фигово работать/запускаться будет. Не, кварцы мне на военке делают под заказ, -хорошие ![]() Тебе надо _только_ сам принцип понять Так вот -с сам прицип то я не могу вьехать ![]() Динамическую индикацию представляешь себе? Не практически вообще не представляю Я раньше с цифрой дел не имел,-одно дело чёнибудь спаять и залить готовую прошивку, а другое дело самому все ето придумывать ![]() временнОе разделение. Ну я примерно так и догадывался, но как ето будет выглядеть програмно даже представить немогу. А как мониторится такая клава? - неужто ifами? ![]() |
| 955. Dikoy, 22.08.2007 14:29 |
| КРОКОДИЛ А как быть с клавиатурой непонятно. Можно нацеплять по кнопкам клавы весовых резисторов и подцепить к свободному входу АЦП. И ттго, каждая кнопа будет иметь своё выходное (с клавы) напряжение. 16 кнопок на АЦП с разрешением 256 точек, это 16 точке на кнопу. Даже с 5% резюками должно получиться надёжно ![]() И того, клава займёт одну лапку АЦП, которая у тебя и так уже занята. Поищи тут по форуму, это мысль не раз звучала. |
| 956. КРОКОДИЛ, 22.08.2007 19:07 |
| Dikoy подцепить к свободному входу АЦП Круто! Мне на фирменных агрегатах приходилось такое видеть - поначалу долго не мог вьехать как клава по одному микрофонному проводу работает ![]() Тока я еще с обработкой данных с АЦП не разобрался -можешь какой нибудь пример кинуть -как там чего,какие там буфера создавать, и как их на дисплей выводить. |
| 957. Dikoy, 22.08.2007 23:44 |
| КРОКОДИЛ можешь какой нибудь пример кинуть Включи АЦП в визарде, он тебе всё включит и сгенерит. А дальше считай, акое напряжение (а точнее двоичный код, чтоб по 10 раз не перегонять значения) будет при замыкании каждой кнопки, вбивай в case и мониторь на здоровье. Про кондёр не забудь на входе, 0,01, чтобы весь мусор не поймать Да и дребезг подавит. |
| 958. КРОКОДИЛ, 23.08.2007 01:36 |
| Dikoy Включи АЦП в визарде, он тебе всё включит и сгенерит. Да включил уже давно и сгенерил все, -непонятно как дальше писать то? В примерах вижена MK работают только с внешним АЦП -потому и непонятно как и откуда вытаскивать код для обработки? ![]() |
| 959. Dikoy, 24.08.2007 22:53 |
| КРОКОДИЛ char a,b; a=read_adc(b); //считать в переменную а значение напряжения на канале b Вот и всё - в а сидит значение от 0 до 255 напряжения на канале b, где 255=максимуму диапазона=ARef. |
| 960. КРОКОДИЛ, 25.08.2007 02:12 |
| Dikoy a=read_adc(b); //считать в переменную а значение напряжения на канале b Во, так бы сразу и сказал - а то я все думал что с этим read_adc делать -куда его засунуть ![]() Тут еще один вопрос нарисовался: перед выводом содержимого регистра на LCD его нужно в десятичный вид переводить? или вижен все сам сделает? ![]() |
| 961. Dikoy, 25.08.2007 12:36 |
| КРОКОДИЛ а то я все думал что с этим read_adc делать -куда его засунуть Это самая обычная функция, возвращающая одно значение. Таких в твоём синтезаторе было несколько штук, включая функцию чтения UARTа. Если б ты тогда разобрался, сейчас не задавал бы таких вопросов ![]() перед выводом содержимого регистра на LCD его нужно в десятичный вид переводить? Нужно. Вижн сам ничего не сделает и в лучшем случае выдаст тебе код от 0 до 256. |
| 962. КРОКОДИЛ, 25.08.2007 14:45 |
| Dikoy Нужно. A как его переводить в десятиричный код? Если б ты тогда разобрался, Всему свое время -у меня же голова не дом советов -потихоньку разбираюсь.Тут кстати ничего не получается с начальной инициализацией еепрома,сделал так как написано в руководстве, но компилятор на каждую строку выдает missing'('- так и несмог разобраться почему? ![]() код:eeprom unsigned char koefp[61]; Добавление от 25.08.2007 15:08: Dikoy код: |
| 963. КРОКОДИЛ, 26.08.2007 21:36 |
| Dikoy А на LCD цифры можно из любой функции выводить? или только из main? |
| 964. Dikoy, 27.08.2007 00:09 |
| КРОКОДИЛ A как его переводить в десятиричный код? Математикой. (ARef/256)*код_с_АЦП В восмибитном режиме, есно. В десятибитном будет не 256, а 1024. Всему свое время Да ты пол года на месте топчешься... Если б советов слушал, в т.ч. и сони (он много чё по делу говорил) уже бы въехал в основы и остальное пошло уже как следствие. каждую строку выдает missing'('- так и несмог разобраться почему? Чёта потерял он. Видимо, ход твоей мысли ![]() Без остального кода не скажу. Предполагаю, что ты стал присваивать коэффициенты сразу в месте объявления массива, а не в мейне или иной функции. А нафига делать 61 операцию присвоения, занимая код и циклы? В объявлении массива, в скобках пишешь {0, 10, 11, 1 ... 112, 113} И компилятор создаст массив уже с этими числами внутри. А на LCD цифры можно из любой функции выводить? Да, главное чтобы она в мейне использовалась. Добавление от 27.08.2007 00:14: КРОКОДИЛ |
| 965. КРОКОДИЛ, 27.08.2007 00:42 |
| Dikoy Да ты пол года на месте топчешься... Ну так я ж еще и работаю A когда остается свободная минута перевариваю програмирование. Математикой. Это понятно, я спрашивал как сделать чтоб это отображалось на дисплее в десятиричном виде? Предполагаю, что ты стал присваивать коэффициенты сразу в месте объявления массива, Ну да. ![]() А нафига делать 61 операцию присвоения, занимая код и циклы? Ну такой пример инициализации масивов я нашел в учебнике,- потому так и написал. код:В объявлении массива, в скобках пишешь {0, 10, 11, 1 ... 112, 113}Пример: И компилятор создаст массив уже с этими числами внутри. Попробую Но 61 ячейка в одну строку не влезит. ![]() Не скажу, я с printf давно дела не имел. Тут смысл чтоб вывести на экран содержимое REGN,но мне непонятно в каком виде оно вылезит в десятиричном или двоичном? Добавление от 27.08.2007 02:13: Dikoy Добавление от 27.08.2007 02:22: Dikoy |
| 966. Dikoy, 27.08.2007 02:42 |
| КРОКОДИЛ но мне непонятно в каком виде оно вылезит в десятиричном или двоичном? По любому в десятичном (то есть цифра, а не 1100101). Так процессор дисплея устроен. Ну такой пример инициализации масивов я нашел в учебнике,- потому так и написал. Ну это общий пример, демонстрирует что ты можешь сделать при объявлении. Для ПК сойдёт, но у МК это отнимет лишнюю память и 61 цикл присвоения... Конечно, если памяти хватает, можно и так. Но это топорно... Предполагаю, что ты стал присваивать коэффициенты сразу в месте объявления массива, Ну да. Сделай в мейне, сразу перед while(1). Но 61 ячейка в одну строку не влезит. Сделай в две с разделением энтером... Насколько знаю, компилятор должен вкурить что к чему. Добавление от 27.08.2007 02:47: КРОКОДИЛ Добавление от 27.08.2007 02:50: КРОКОДИЛ |
| 967. КРОКОДИЛ, 27.08.2007 03:18 |
| Dikoy Два тычка гуглём Дык нужно еще ж знать что тыкать........ Рассмотрим в качестве примера следующие две инициализации массивов: int s[3][5]={1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11} и Да я уже сам вьехал что нужно было приравнять -методом втыка ![]() int s{{1, 2, 3}, {4, 5, 6, 7, 8}, {9, 10, 11}} А это в вижене не работает ![]() По любому в десятичном (то есть цифра, а не 1100101). Так процессор дисплея устроен. Я спросил потому что вот такая байда на глаза попалась код:Только непонятно нифига;********************************************** ![]() Сделай в две с разделением энтером... А в конце первой строчки нужно будет точку с запятой ставить? |
| 968. Dikoy, 27.08.2007 13:44 |
| КРОКОДИЛ потому что вот такая байда на глаза попалась Дык это АССЕМБЛЕР! Не путай его с Си. Вот очень старый пример: "Прострели себе ногу на языке программирования" C: Вы простреливаете себе ногу. Ассемблер: Вы пытаетесь прострелить себе ногу, но обнаруживаете, что прежде вам придется изобрести пистолет, пулю, курок и вашу ногу. C++: Вы случайно создаете дюжину экземпляров объекта "вы" и всем им простреливаете ногу. Срочная медицинская помощь оказывается невозможной, так как вы не можете разобраться, где настоящие объекты, а где - те, которые только указывают на них и говорят: "А вот - я!". Паскаль: Транслятор не позволит вам прострелить себе ногу. И т.д. http://www.gamedev.ru/flame/forum/?id=54360 А в конце первой строчки нужно будет точку с запятой ставить? Теоретически нет, просто рвёшь её ентером. Добавление от 27.08.2007 13:53: c1 |
| 969. Tahoe, 27.08.2007 17:12 |
| Dikoy "Прострели себе ногу на языке программирования" Я эту мулю не видел раньше. |
| 970. КРОКОДИЛ, 27.08.2007 22:58 |
| Dikoy Он сам всё умеет. Это хорошо! ![]() Тут еще один вопрос: я на этой же элементной базе хочу еще написать генератор стандартных сигналов, но поскольку у генератора огромный диапазон перестройки от 100мгц до 2800мгц то интерфейс синтизезатора типа кнопка вниз кнопка вверх здесь не прокатит. Здесь нужно набирать частоту уже непосредственно с клавиатуры -тоесть если нужно набрать частоту допустим 1956мгц то нажимаем единичку,девятку,пятерку и шестерку -естественно что порядок набора тутже отображается на лисплее,а когда набираем последнюю цифру то данные подаются на PLL. Вот только немогу придумать как это организовать Чёто в голову не приходит никаких умных мыслей У тебя есть какие нить соображения на этот счет? |
| 971. Tahoe, 27.08.2007 23:41 |
| КРОКОДИЛ Чёто в голову не приходит никаких умных мыслей Посмотри на командную строку в какой-нить MS-DOS. Там тоже сначала набивают строку в буфер, а потом ентер жмут. А ещё стирают бэкспейсом. Но у тебя всё гораздо проще.Кстати, можно и парой кнопок up/down обойтись. Если обрабатывать долгое нажатие/залипание кнопки. Т.е. нажал и держишь. Сначала по чуть-чуть приращение, через пару секунд на порядок быстрее и т.д. |
| 972. КРОКОДИЛ, 27.08.2007 23:55 |
| Tahoe Кстати, можно и парой кнопок up/down обойтись. Если обрабатывать долгое нажатие/залипание кнопки. Т.е. нажал и держишь. Сначала по чуть-чуть приращение, через пару секунд на порядок быстрее и т.д. Пробовал я такое -для трансивера подходит, а для точного прибора -очень неудобно в работе особенно когда работа срочная Представь сколько придется прыгать при шаге 2,5 килогерца через 1000мгц ![]() Посмотри на командную строку в какой-нить MS-DOS. Там тоже сначала набивают строку в буфер, а потом ентер жмут. А ещё стирают бэкспейсом. Но у тебя всё гораздо проще. Ну так, я так же и хочу, только не могу придумать как это написать ![]() Или советуешь для начала пару операционных систем написать? Сначала MS-DOS, потом линукс, Виндовс ХР, а потом уже и программу для прибора писать ![]() |
| 973. Tahoe, 28.08.2007 00:06 |
| КРОКОДИЛ Представь сколько придется прыгать при шаге 2,5 килогерца через 1000мгц Ты не понял. Это первую секунду _удержания_ шаг 2,5кГц. Затем шаг становится 25кГц ( /50/100/500/1000 - по вкусу ). Стандартный приём, в любом трансивере, где нет мех. энкодера. ![]() Или советуешь для начала пару операционных систем написать? Нет, но ты уж больно резво за всё взялся. Chill out, двигайся постепенно. "Скромность украшает девушку" (с) О.Бендер ( к мадам Грицацуевой ). ![]() |
| 974. КРОКОДИЛ, 28.08.2007 00:28 |
| Tahoe Ты не понял. Да понял я, -шибко неудобно такой системой пользоватся -часто перепрыгивает нужное место - потом нужно возвращатся -короче спросонья неразрешимая задача, -я ж для себя прибор всетаки делаю а не для дяди "Сэма" А элементная часть и почти вся программа такаяже как и для синтезатора. ты уж больно резво за всё взялся. Ну так нужда заставляет - прибор такого уровня стоит космических денег, а нужен для работы еще десять лет назад ![]() двигайся постепенно. Ну так я постепенно и двигаюсь, только пишу все сразу -так для меня проще, только вот иногда бывают нужны такие языковые конструкции что сразу и несообразишь как написать ![]() Я еще и блок управления для стиралки потихоньку пишу Там пока вопросов не возникает Правда еще с програмным ШИМом нужно будет разобратся.............. |
| 975. Tahoe, 28.08.2007 00:45 |
| КРОКОДИЛ часто перепрыгивает нужное место Ну дык ускоряться надо не сразу, а постеменно. Имхо 3 градации оптимально. 2,5кГц > средний шаг > крупный шаг. Конкретные значения - по вкусу. Я пользовался такими трансиверами. Когда всё подобрано оптимально, имхо вполне удобно. пишу все сразу -так для меня проще Проще запутаться. ![]() Я пишу только модулями. Параллельно продумывая, как они меж собой и верхом взаимодействовать будут. еще с програмным ШИМом нужно будет разобратся А что там разбираться? Если ты пришёл к программному ШИМу, значит ты не совсем верно выбрал процессор. ![]() |
| 976. Apex_t, 28.08.2007 00:49 |
| КРОКОДИЛ Вот только немогу придумать как это организовать Чёто в голову не приходит никаких умных мыслей И читать книжки или то о чем этот топик ВЛОМ ... Во беда. Добавление от 28.08.2007 00:51: КРОКОДИЛ |
| 977. Dikoy, 28.08.2007 02:01 |
| Tahoe Я эту мулю не видел раньше. Та ладна! Мы ещё в универе её из лексикона на роботронах печатали...Нет, но ты уж больно резво за всё взялся. +1 КРОКОДИЛ У тебя есть какие нить соображения на этот счет? Есть, но излагать их тут очень долго. Я бы поискал в сети, таких проектов море. В примерах вижна есть работа с клавой. Добавление от 28.08.2007 02:06: Наприер так: |
| 978. КРОКОДИЛ, 28.08.2007 11:37 |
| Apex_t Задача 8 ведь на японском написана - фиг разберешся. Чтото типа того ![]() Я ведь написал что нужно будет разобратся...А не о том что немогу разобратся. Добавление от 28.08.2007 11:41: Dikoy Добавление от 28.08.2007 11:56: Tahoe Добавление от 28.08.2007 12:02: Dikoy |
| 979. Dikoy, 28.08.2007 19:48 |
| КРОКОДИЛ А почему именно 4 раза? Ну цифры то 4 в значении частоты. А так хоть 6 раз прокручивай и частоту вводи в герцах. Главное суть - накопление числа по отдельным клавишам. |
| 980. КРОКОДИЛ, 29.08.2007 00:00 |
| Dikoy Ну цифры то 4 в значении частоты. Понятно Тока цифирек восемь будет, например 2385,5625 мгц -тока без запятых -нехочу с дробными цифрами связыватся. ![]() Вначале а==0 и значение клавиши тупо ей присвоится. Потом сумма будет умножаться и сдвигадьтся на один разряд. Слушай а как этот набор на дисплее отображать? -неужели нажатие каждой клавиши на printf выводить по отдельности? -мне так и в 48меге памяти нехватит ![]() |
| 981. Dikoy, 30.08.2007 12:59 |
| КРОКОДИЛ Слушай а как этот набор на дисплее отображать? -неужели нажатие каждой клавиши на printf выводить по отдельности? Да. И ничего с памятью не будет - видеопамять сидит в дисплее. А принтф, если она один раз применена, уже заняла своё место. Дале хоть ты её 20 раз вызывай, места она не займёт. Это принцип функции. Помнишь, как у меньшился объём твоей проги когда я вывел повторяющиеся оерации функцией, которую уже вызывал нужное количество раз? ![]() |
| 982. КРОКОДИЛ, 30.08.2007 13:15 |
| ALL Написал вот такую фичу,но она както странно ведет себя при симуляции в AvrStudio4 код:При симуляции стрелочка доходит до if ( TEMPERATURA && UROVEN_VODI_1){ внаглую пропускает NAGREVATEL = 1; и идет дальше, затем доходит до while(str && (!TEMPERATURA)&& UROVEN_VODI_1){ и пропускает весь цикл не отрабатывая его. Если убать часть условия в котором содержится && -тогда симуляция идет нормально. Где здесь может быть косяк?#include <tiny2313.h> ![]() И еще вопрос -можно ли делать такие большие delay_us(200000);? ![]() |
| 983. Tahoe, 30.08.2007 13:38 |
| КРОКОДИЛ внаглую пропускает Скорее всего, проблема в том, что отсутствует модификатор volatile. Т.е. ты работаешь с ногой порта. Компиллер считывает её один раз и дальше считает, что значение всегда равно TRUE. Потому можно соптимизировать и выкинуть кусок, который всё равно никогда не используется. Попробуй так: volatile char heat;И не бойся, особо, "лишних" переменных. Компиллер соптимизирует. Главное, что бы понятно было. Кстати, о "понятности". 1. Форматируй текст нормально - читать невозможно, глаза режет. А что хуже, сам же запутаешься в итоге. 2. Не поленись, залезь на lingvo.ru. Тогда увидишь, что "pompa" это "pump", что вместо "temperatura" прекрасно подойдёт "heat". В общем на каждый изврат найдётся кучка коротких английских синонимов. Уровень - level, двигатель - engine ( кстати, сравни с "engineer" ). Кстати, есть стандарт на сокращения. Просто выкидываешь из слова все гласные ( за исключением случая, когда слово начинается на гласную ).Ещё. Сначала сущность, потом её характеристика. Т.е. сначала water, потом уже её level. Например: water.level, WATER_LEVEL. Добавление от 30.08.2007 13:44: И еще вопрос -можно ли делать такие большие delay_us(200000);? |
| 984. КРОКОДИЛ, 30.08.2007 14:10 |
| Tahoe раз её код не привёл Посмотрел в хидере - void delay_us(unsigned int n); -тоесть delay_us(200000) не прокатит, но компилер почемуто прдупреждения не дает A можно так написать:delay_us(65535); delay_us(65535); delay_us(65535); тоесть несколько пауз подряд? ![]() Попробуй так: Хорошо вечером попробую переписать. ( кстати, сравни с "engineer" engineer==инженер ![]() Не поленись, залезь на lingvo.ru. Пойду ликбез по англицкому проходить ![]() |
| 985. Tahoe, 30.08.2007 14:34 |
| КРОКОДИЛ A можно так написать: Дык а кто ж запретит? Это вопрос удобности.engineer==инженер Вот именно. Читай - "моторист". Вот drive/driver благороднее звучит - водить/водитель. А тут - мотор/моторист. Мотористы мы. ![]() |
| 986. КРОКОДИЛ, 31.08.2007 01:10 |
| Tahoe Попробуй так: volatile char heat;...void stirka(){ heat = TEMPERATURA; if( heat && ... ) { }} Попробовал нифига не помогает! Причем if (!heat ) { NAGREVATEL = 1; } работает а вот if (heat ) { NAGREVATEL = 1; } нивкакую работать нехочет! ![]() if (!heat && UROVEN_VODI_1) { NAGREVATEL = 1; } это тоже работать нехочет ![]() Цикл тоже работать нехочет while(!heat && str && UROVEN_VODI_1 ) { DVIGLO_VPRAVO = 1; delay_us(5000); DVIGLO_VPRAVO = 0; delay_us(5000); DVIGLO_VLEVO = 1; delay_us(5000); DVIGLO_VLEVO =0; delay_us(5000); str--; } Если убрать одно условие например вот так: while(!heat && str ) { DVIGLO_VPRAVO = 1; delay_us(5000); DVIGLO_VPRAVO = 0; delay_us(5000); DVIGLO_VLEVO = 1; delay_us(5000); DVIGLO_VLEVO =0; delay_us(5000); str--; } тогда начинает работать! -прямо мистика какаято ![]() Я даже AvrStudio4 переустановил но все осталось по прежнему. Хотя только переустановки наверное мало -нужно было еще реестр почистить. А может просто нестоит на AvrStudio4 симулировать, -она ведь под асемблер заточена,- может не смогла Си нормально прожевать? Добавление от 31.08.2007 01:19: Tahoe |
| 987. Dikoy, 31.08.2007 03:51 |
| КРОКОДИЛ Написал вот такую фичу,но она както странно ведет себя при симуляции в AvrStudio4 Возможно скажу глупость, но попробуй побитовое И заменить просто И, то бишь вместо && написать &. Просто вижон вещь в себе... Есть у него некоторые свои особенности... И еще вопрос -можно ли делать такие большие delay_us(200000);? Можно. Но лучше использовать delay_ms ![]() Добавление от 31.08.2007 04:03: КРОКОДИЛ |
| 988. Tahoe, 31.08.2007 09:18 |
| КРОКОДИЛ а вот if (heat ) { NAGREVATEL = 1; } нивкакую работать нехочет! 1. Логически рассуждаем. Если в в эту ветвь никогда не заходит, то она выкидывается оптимизатором. heat мы объявили как volatile. Значит дело в "NAGREVATEL" и/или его комбинации с heat. Кстати, обзови его HEATER. 2. У тебя хоть какие-нить warnings сыпятся или всё тихо? Если сыпятся, то покажи. Цикл тоже работать нехочет while(!heat && str && UROVEN_VODI_1 ) ... Если убрать одно условие например вот так: while(!heat && str ) Блин, я думал ты всё же сообразишь, сделать по аналогии. Я про "UROVEN_VODI_1". ![]() P.S. Когда будешь писать ответ, чуть выше подними глаза. Увидишь там иконку [#]. Не стесняйся, пользуйся. ![]() |
| 989. КРОКОДИЛ, 31.08.2007 11:02 |
| Dikoy И, то бишь вместо && написать &. Это я в первую очередь попробовал бесполезно! А ты скобочки попробуй поставить Пробовал -тоже бесполезно ![]() Просто вижон вещь в себе... А я больше грешу на студию -дело в том что я пытался в ней создать проект на Си -наглухо отказывается -требует скачать и установить какуюто фичу. А виженоновские проекты эмулирует но не всегда нормально. Tahoe Логически рассуждаем. Если в в эту ветвь никогда не заходит, Если ! heat то заходит -все нормально! А если просто heat без не то пропускает код Но мне то нужен heat без ! -небуду же я изза этого датчики менять.ты всё же сообразишь, сделать по аналогии. Я про "UROVEN_VODI_1". Дык я пытался любым путем заставить работать, поэтому переименовать неуспел ![]() А условие можно выкинуть любое -тогда работает, но в реале я условия выкидывать немогу так как машинка будет крутится без воды или на холодную. Мне кажется здесь дело не в оптимизации... У тебя хоть какие-нить warnings сыпятся или всё тихо? Высыпается пара warnings -про неиспользованые функции -те которые я мейне забыл прописать. Кстати, обзови его HEATER Может на каждую лапку свою переменную сделать? но мне кажется что бесполезно. Dikoy Но лучше использовать delay_ms А я почемуто думал что us больше чем ms |
| 990. Tahoe, 31.08.2007 11:38 |
| КРОКОДИЛ Если ! heat то заходит -все нормально! А если просто heat без не то пропускает код Ну дык ты не меняй условие, в поисках "как работает". А поставь условие "как надо" и выясняй, почему не работает. Может на каждую лапку свою переменную сделать? но мне кажется что бесполезно. Ты вот что сделай. Идти надо по пути от простого к сложному. Сначала сделай тупо, что-нить одно. Например в зависимости от t_heat регулируешь heater. Когда заработает, навесишь следующие датчики/исполн. механизмы. А я почемуто думал что us больше чем ms uS > микросекунда ( 0,000 001 Сек. ) mS > миллисекунда ( 0,001 Сек. ) По аналогии сравни миллиметр и микрометр ( микрон ). |
| 991. КРОКОДИЛ, 31.08.2007 11:51 |
| Tahoe А поставь условие "как надо" и выясняй, почему не работает. Я наверное лучше сделаю макетку когда будет время и проверю это все в железе, заодно будет возможность светодиодами помигать -потому что не шибко доверяю я этим симуляторам. Синтезатор тоже на VMLAB не работал вабче а в железе работает.Например в зависимости от t_heat регулируешь heater Не, там механический датчик -выставляешь на шкале пинтературу и по достижении он просто размыкает контакты. |
| 992. Tahoe, 31.08.2007 14:21 |
| КРОКОДИЛ Не, там механический датчик -выставляешь на шкале пинтературу и по достижении он просто размыкает контакты. Ну тогда сам Б-г велел обозвать вход/переменную как "overheat" или "overheat_sensor" ( перегрев/датчик_перегрева). |
| 993. КРОКОДИЛ, 31.08.2007 16:17 |
| Tahoe Ну тогда сам Б-г велел обозвать вход/переменную как "overheat" А это поможет? ![]() |
| 994. Dikoy, 31.08.2007 16:24 |
| КРОКОДИЛ Синтезатор тоже на VMLAB не работал вабче а в железе работает. Это который мы всей кучей писали? |
| 995. Tahoe, 31.08.2007 17:21 |
| КРОКОДИЛ А это поможет? Да. Причём очень. Если, конечно, на этом не остановишься и сделаешь понятными все остальные переменные, не будешь пренебрегать форматированием и т.д. Повысится читабельность - меньше времени будешь на месте топтаться. ![]() |
| 996. КРОКОДИЛ, 31.08.2007 20:10 |
| Dikoy Это который мы всей кучей писали? Не тот который на асме был -Алексея Темерева. А тот который кучей писали я так и несмог в VMLAD загнать хотя пять раз Сонину портянку перечитывал. А в студии он тоже глючил тоже вилы и ифы не отрабатывались -пришлось его два раза вручную переписывать -каждую буковку с клавиатуры набирать -тоже самое что и в начальном варианте тока набранное вручную -тока тогда стал симулироватся ![]() Добавление от 31.08.2007 20:14: Dikoy Добавление от 31.08.2007 23:22: Tahoe |
| 997. Tahoe, 01.09.2007 00:55 |
| КРОКОДИЛ А графическим дисплеем шибко сложно управлять? "Широко шагаешь - штаны порвёшь." (с) ![]() А чё у меня с форматированием не так? Сравни форматирование в AVR краткий курс начинающим "с нуля" - avr123.nm.ru - обновлен., #982 (http://forum.ixbt.com/topic.cgi?id=48:5298:982#982) и в след. посте. ![]() А можешь на пальцах расказать как возвращающие функции работают? Видимо речь про callback. Вообще-то см. выше - "Широко шагаешь - штаны порвёшь." (с) А если всё же неймётся, сегодня на помойке обсуждалось (http://www.telesys.ru/wwwboards/mcontrol/1775/messages/149287.shtml) .Почитал "Руководство полного идиота - язык Си - Богатырев" Блин, ну ты и книжки читаешь. Ну есть же K&R. Настольная книга. http://www.google.com/search?hl=ru&client=opera&…%81%D0%BA&lr=А то опять выйдет, как с компиляторами, симуляторами... |
| 998. Dikoy, 01.09.2007 01:02 |
| КРОКОДИЛ я так и несмог в VMLAD загнать Тьфу ё... Выкинь ты его - дурной это симулятор. Проверяй в железе. |
| 999. КРОКОДИЛ, 01.09.2007 01:53 |
| Dikoy Выкинь ты его - дурной это симулятор Дык симуляторы все дурные -единственный в котором смог разобратся это студия и то неславабогу ![]() Tahoe Настольная книга. http://www.google.com/search?hl=ru&client=opera&…%81%D0%BA&lr= Блин второй раз её скачиваю -я её в самом начале скачал тогда ничего несмог понять, -щас хоть через раз чтото понимаю ![]() Tahoe А можешь на пальцах расказать как возвращающие функции работают? Видимо речь про callback. Вообще-то см. выше - "Широко шагаешь - штаны порвёшь." (с) А если всё же неймётся, сегодня на помойке обсуждалось Не, я имел в виду типа такого:код:unsigned int read_adc(unsigned char adc_input) Чего и куда она возвращает? ![]() А ещё непонятно насчет пауз -ведь частота кварца нигде в программе не указана и не вычисляется, каким образом процесор понимает сколько циклов нужно пропустить чтобы сделать паузу допустим в 20 милисекунд? ![]() |
| 1000. Tahoe, 01.09.2007 10:59 |
| КРОКОДИЛ я её в самом начале скачал тогда ничего несмог понять, -щас хоть через раз чтото понимаю ??? А что там непонятного? Единственное, её надо внимательно читать, скакать по диагонали не прокатит. Чего и куда она возвращает? "Чего". ADCW. Собсно, достаточно было посмотреть перевод англ. return (http://www.lingvo.ru/lingvo/Link.asp?Ln=1&CardId=72;65;74;75;72;6e;0;4c;69;6e;67;76;6f;55;6e;69;76;65;72;73;61;6c;20;28;45;6e;2d;52;75;29&ShowBlock=1) . ![]() "Какое оно, это <чего>". См. декларацию функции unsigned int read_adc(unsigned char adc_input). "Куда". Туда, откуда эту функцию вызвали. Например: dummy = read_adc( chnl_num ); каким образом процесор понимает сколько циклов нужно пропустить чтобы сделать паузу допустим в 20 милисекунд? А он и не понимает. ![]() |
| 1001. КРОКОДИЛ, 01.09.2007 12:42 |
| Tahoe "Чего". ADCW. Собсно, достаточно было посмотреть перевод англ. return. "Какое оно, это <чего>". См. декларацию функции unsigned int read_adc(unsigned char adc_input). "Куда". Туда, откуда эту функцию вызвали. Например: dummy = read_adc( chnl_num ); Не все равно непонятно как оно работает и для чего нужно? Можешь как нибудь с цифрами механизм работы обьяснить? -я логику без математики слабо понимаю ![]() А он и не понимает А какже он тогда будет паузы делать? ![]() |
| 1002. Dikoy, 01.09.2007 12:51 |
| c1 unsigned int read_adc(unsigned char adc_input) Ну и что непонятного? Такая функция возвращает значение. То есть она его вычисляет, а потом его можно присвоить любой переменной. По этому такие функции присваиваются переменным как другие переменные: а=read_adc(b); В скобках можно написать условие (одно или несколько). Например, в этом случае условие - номер канала. А можно и не писать. Тогда буду пустые скобки: init_adc(); При обявлении возвращающей функции ты должен указать её тип (как и у обычной переменной, ведь ты её чему-то присваивать будешь) а так ще объявить типы условий, которые в скобках: unsigned int read_adc(unsigned char adc_input) Вот, функция типа int, условие типа char; Чтобы функция в конце вернула переменную А, нужно написать return A; Именно она и будет присваиваться переменной "а" в записи а=read_adc(b); А невозвращающие функции не могут быть ничему присвоены. Они просто ставятся в нужном месте программы. Например, delay_ms(a); пример невозвращающей функции, но у неё тоже есть условие ![]() |
| 1003. Tahoe, 01.09.2007 13:32 |
| КРОКОДИЛ Так, Беня! Понимаю, что лениво, что "нет времени, а жрать хоцца" и т.д. Тем не менее, выкидываем пока все эти симуляторы/компиляторы, качаем K&R и вдумчиво курим главу "функции". ![]() Добавление от 01.09.2007 13:37: А какже он тогда будет паузы делать? |
| 1004. КРОКОДИЛ, 01.09.2007 14:14 |
| Dikoy То есть она его вычисляет, а потом его можно присвоить любой переменной. По этому такие функции присваиваются переменным как другие переменные: а=read_adc(b); Во теперь почти все понятно Проблема была в том что компилер сам наделал функций непонятных ![]() Тогда буду пустые скобки: init_adc(); Компилер этого не допускает почемуто. ![]() Добавление от 01.09.2007 14:34: Dikoy Добавление от 01.09.2007 14:49: Tahoe |
| 1005. Dikoy, 01.09.2007 16:30 |
| КРОКОДИЛ Вообще книга толковая но примеры не совсем удачные для начинающего Просто книга по Си ВООБЩЕ, а конкретный компилятор может иметь небольшие отличия или дополнительные функции, введёные в него разработчиком. Посему некоторые функции, которые есть в ПК, в CV отсутствуют и наоборот. Так что не надо зацикливаься, если пример из KR не работат в CV ![]() Тока я немогу догнать что нужно написать в скобках вместо буквы b ? То и надо: 0, 2, 10, 255, но не более, потомучта b, она же adc_input, при инициализации обозвана как char. Номер канала ты туда вписываешь, цифрой. Это даже логически должно быть понятно ![]() Компилер этого не допускает почемуто. А ты в скобочках void пишешь при объявлении? ![]() |
| 1006. КРОКОДИЛ, 01.09.2007 17:40 |
| Dikoy А ты в скобочках void пишешь при объявлении? Дык её компилер сам уже обьявил А если в мейне попробовать написать read_adc() или а =read_adc() то компилер не пропустит -выдаст ошибку.Номер канала ты туда вписываешь, цифрой. Это даже логически должно быть понятно Блин -мне непонятно что конкретно мне нужно вписывать??? Запутал меня окончательно -То и надо: 0, 2, 10, 255, -откуда у меня 255 каналов? Если у меня будет работать только нулевой вход АЦП -значит в скобках нужно ноль писать? или как? ![]() |
| 1007. CrazyElk, 01.09.2007 18:15 |
| КРОКОДИЛ Значится ТАК. Если действительно хочется понять доподлинно как и куда возвращает функция результаты. Что именно происходить в С при написании a=someFunc(b); то прежде всего до С, asm .... и вдумчиво представляем себе АРХИТЕКТУРУ процессора что он умеет делать. Потом накладываем на это понятия программирования из раздела архитектура программ и модели памяти. Если такие понятия как сегмент данных, куча (heap), стек, сегмент кода перестали казаться китайской грамотой то тут как раз начинаем читать что такое функция как передаются в функцию на конкретном языке данные по значению и по ссылке (слово стек и указатель стека очень нам помогут) чтотакое область видимости и как размещаются статические и стековые данные. Если грубо для статических переменных и данных (существующих вне контекста функций в том числе и статические переменные члены функции) место для хранения (адреса переменных и данных) забирается из кучи (heap). Каждая такая переменная характеризуется своим адресом в памяти в сегменте данных. С функциями и их данными тесно связанно другое понятие стек. Когда необходимо произвести вызов функции (в том числе и main) место для всех ее локальных переменных, значений ее параметров и итогового результата забирается из стека (и при этом модифицируется положение указателя вершины стека). Вский раз при этом в выделенное место в памяти на стеке копируются значения парметров вызова функции, инициализируются локальные переменные (если таковое в их объявлениях в функции заданно) и выделяется место под возвращаемый результат (для обьемных данных короткие вполне могут возвращатся из функции в регистрах процессора - но когда и для каких типов как делается в стандарте подробно расписанно). Если параметр в функцию передается по ссылке (явно по объявлению или не явно согласно умолчания языка для данного типа - например массивы по умолчанию передаются по ссылке) то этим значением лежащем на стеке служит адрес переменной значение которой передается в вызов по ссылке и внутри функции ты фактически имееш дело с теми областями памяти какие изначально зарезервировано для переменной передаваемой в функцию (а значить в общем случае модифицировать ее значение там), если параметр передается по значению то компилятор выделяет место размером в передаваемые данные и формирует кусок кода который копирует значение передаваемой переменной из того места где она расположена в выделенное на стеке место 1 в 1 - фактически делает временную переменную на стеке копирует значение параметра во временную переменную а внутри функции имеет дело с временной копией, а не с самой передаваемой переменной. Соотвественно зная где расположение вершины стека на момент выполнения операции раскладку по порядку и их размеры параметров, локальных переменных, и возвращаемого значения то используя косвенную адресацию компилятор реализует все операции с переменными внутри функции и сохранение результатов из переменной фигурирующей в return в область стека предназначенную для результата исполнения функции. А сразу после возврата из функции раз точно известно в стеке место где лежит ее результат (его тип размер и т.д.) то никакого труда компилятору не составляет сформировать код распоряжающийся результатом как того требует выражение в котором вызывается функция. Присвоить его переменной (копируя данные из области памяти на стеке в область памяти где расположена переменная) a = read_adc(b); использовать в вызове другой функцию (копируя из одной области стека в другую) myFunc(read_adc(b));, присвоить временной переменной сгенерированной самим компилятором для вычисления сложного выражения состоящего из множества вызовов и кучи математических операций над их результатами (выражение a = read_adc(b)/read_adc(c); компилятор преобразует в нечто типа tmp1 = read_adc(b), tmp2 = read_adc(c), a = tmp1/tmp2) и т.д. и т.п. Все выше описанное грубо - существует например регистровая передача параметров и возврат результатов, ссылки адреса и т.д. и т.п. так что восприми как иллюстрацию. И самое главное. Если задача программировать на C то доподлинно все это знать вовсе не обязательно. ВСЕ что ДОЛЖНО быть описано в стандарте языка С - и в этом его сила. А как это обеспечить на конкретном процессоре это технические детали реализации. Понимать их полезно но необязательно. Естественно что специфику и ограничения/расширения конкретного используемого компилятора знать необходимо но именно специфику и ограничения, а не все детали реализации. WBR CrazyElk Добавление от 01.09.2007 18:32: КРОКОДИЛ Дык её компилер сам уже обьявил - Честное слово копилятор НИЧЕГО не обьявлял. Если эту фукцию обьявил не ты то ее объявили (и реализовали) "добрые люди" поставившие вместе с компилятором еще и БИБЛИОТЕКУ подключенную и используемую в твоем проекте. Они же и определили ЧТО ИМЕННО надо передать в эту функцию толи номер канала толи адрес регистра за каоторым он кроется толи (что там им понравилось то и передать просят). Так что с вопросом что передать если функции без параметров нет это к описанию фукции в библиотеки - тоесть курить документацию на библиотеку в которой read_adc опредлен. Но обычно посколько люди создающие библиотеку совершенно не злобные, то они еще определяют удобные для запоминания константы для общеизвестных ресурсов что то в стиле CHANNEL_0 или там CHANNEL_A и тому подобное. А поскольку что именно надо делать (в какие именно порты писать из какие читать и что именно) зависит от семейства и камня то эти магические константы стоит искать в файле описания процессора |
| 1008. КРОКОДИЛ, 01.09.2007 19:51 |
| CrazyElk Озадачил.............надолго............ |
| 1009. Tahoe, 01.09.2007 20:02 |
| CrazyElk ИМХО рановато ты его так "грузанул". Пусть пока КиР читает. Вполне достаточный уровень абстракции. На данном этапе, ему вполне достаточно знать, что при декларации переменной "где-то выделилась память" (с) КиР. А уж что это за память, как организована, Гарвард или Нейман - путь позже разбирается. Пусть сначала сложение освоит, прежде чем за интегралы браться. ![]() |
| 1010. Dikoy, 01.09.2007 20:53 |
| КРОКОДИЛ А если в мейне попробовать написать read_adc() или а =read_adc() то компилер не пропустит -выдаст ошибку. Правильно! Патамушта её компилер сам уже обьявил и объявил с условием. Вот она и требует это самое условие! Если условие в объявлении убрать, перестанет требовать. Зато возопит, что переменная adc_input неиспользуется ![]() Если у меня будет работать только нулевой вход АЦП -значит в скобках нужно ноль писать? Ну дык ЕСНО! |
| 1011. КРОКОДИЛ, 01.09.2007 21:05 |
| Dikoy Ну дык ЕСНО! Ну дык я это и хотел услышать! ![]() А ваще блин больше никогда не буду связыватся с контролерами на которые нет руского даташита Если б взял изначально 128мегу то и мороки поменьше было бы! |
| 1012. Dikoy, 02.09.2007 00:27 |
| Не факт. |
| 1013. КРОКОДИЛ, 02.09.2007 08:44 |
| Dikoy Не факт С рускими даташитами намного приятней работать -для меня это неопровежимый факт ![]() |
| 1014. majorPAE, 02.09.2007 09:11 |
цитата: Ага, особенно когда в них ляпы и ошибки перевода обнаруживаешь... Он-лайн переводчик в руки, и через месяц-два необходимый минимум у тебя будет. Иначе все время догонять других будешь. |
| 1015. КРОКОДИЛ, 02.09.2007 10:53 |
| majorPAE Он-лайн переводчик в руки Так ПДФки то онлайном не переводятся Если б даташиты были на HTML- тогда другое дело! |
| 1016. majorPAE, 02.09.2007 10:58 |
| КРОКОДИЛ Так ПДФки то онлайном не переводятся Еще как переводятся, copy-paste еще никто не отменял... ![]() |
| 1017. КРОКОДИЛ, 02.09.2007 11:04 |
| majorPAE copy-paste еще никто не отменял... Вот так и мучаюсь -то copy, то paste -пока скопируешь забудешь что хотел! Да и переводит иногда так что только смех один ![]() |
| 1018. majorPAE, 02.09.2007 11:43 |
| КРОКОДИЛ Вот так и мучаюсь Потерпи чуток, наберется "критическая масса" словарного запаса - дальше гораздо легче пойдет! ![]() |
| 1019. Tahoe, 02.09.2007 12:14 |
| majorPAE наберется "критическая масса" словарного запаса - дальше гораздо легче пойдет! +1 ![]() |
| 1020. КРОКОДИЛ, 02.09.2007 13:32 |
Да терплю уж -куда денешся с подводной лодки! ![]() А пока решил сделать отладочный модуль для програм, с ЖКИ и светодиодами. Приобрёл упаковку светодиодов -вот намигаюсь до потери пульса! ![]() |
| 1021. КРОКОДИЛ, 02.09.2007 13:50 |
| Tahoe Слушай а как вот этой фигнёй управлять? см.рис. -долго переводил даташит но ничего не понял. ![]() К сообщению приложены файлы: 1.gif |
| 1022. Dikoy, 02.09.2007 17:28 |
| КРОКОДИЛ Слушай а как вот этой фигнёй управлять? А оно тебе надо? ![]() |
| 1023. Tahoe, 02.09.2007 18:11 |
| КРОКОДИЛ >Dikoy >А оно тебе надо? +1. ![]() |
| 1024. КРОКОДИЛ, 02.09.2007 18:59 |
| Dikoy Tahoe >А оно тебе надо? Интересно! Этот дисплей всего двумя лапками подключается - тоесть экономия ножек на мк. И стоит дешево. |
| 1025. Tahoe, 02.09.2007 21:43 |
| КРОКОДИЛ экономия ножек на мк Ты погоди ножки экономить. Сначала с Сями разберись. ![]() |
| 1026. КРОКОДИЛ, 03.09.2007 02:28 |
| Tahoe Сначала с Сями разберись Разберусь - куда я денусь -сначала прочитаю Кернигана потом Ричи а может наоборот! ![]() Сегодня заходил к товарищу -у него выделенка -скачал IAR 105мегабайт -целый час качали. Завтра установлю на свежую голову попробую разобратся.Добавление от 03.09.2007 05:37: Tahoe |
| 1027. Dikoy, 03.09.2007 21:09 |
| КРОКОДИЛ Там всё ручками надо... Нету тама визарда. |
| 1028. Tahoe, 03.09.2007 23:48 |
| КРОКОДИЛ 1. Там есть папки с тестовыми проектами. Полазий по ним, позапускай проекты, посмотришь что к чему. 2. Вместе с IAR идёт отличная дока, на англ., разумеется. Но достаточно подробная. 3. Dikoy уже сказал, там особо рюшечек нет. На первый взгляд IAR проигрывает тем, которые "с рюшечками". Но когда залезешь глубже, поймёшь, почему все эти хрени с визардами отдыхают. Насчёт проверить, то или не то. Тебе нужен EWAVR. Для других процессоров - другие названия, например для ARMа зовётся EWARM. А "Embedded Workbench" это касается оболочки. |
| 1029. КРОКОДИЛ, 04.09.2007 01:38 |
| Dikoy Там всё ручками надо... Нету тама визарда Так что и вставки на асме не пропускает? ![]() Tahoe например для ARMа зовётся EWARM `Все нормально EWAVR скачал ![]() Но когда залезешь глубже, Так а он что непривязывается к определенному процесору? |
| 1030. Tahoe, 04.09.2007 01:53 |
| КРОКОДИЛ Так что и вставки на асме не пропускает? Всё он "пропускает". См. документ "Compiler reference", там всё подробнейшим образом разжёвано. Привыкай к тому, что нормальные продукты имеют нормальное сопровождение. Т.е. можно, конечно, и по форумам полазить/поспрашивать, но хорошая дока уже содержит ответы почти на все вопросы.Так а он что непривязывается к определенному процесору? Беня, в этом вся муля! Ты скачал сейчас под AVR, но если приспичит заняться другим процом, просто скачаешь "другой IAR". И попадёшь в ту же самую среду, к которой привык. А список поддерживаемых процессоров ты уже мог видеть, когда выбирал на www.iar.com свой EWAVR. Ба-а-альшой, такой, список. ![]() |
| 1031. КРОКОДИЛ, 04.09.2007 02:01 |
| Tahoe Ба-а-альшой, такой, список. Не, я имел в виду не все семейсво а определенный процесор из этого семейства, или тут пофиг под чего писать под тиньку 2313 или под мегу168 -тоесть прога этого не учитывает? |
| 1032. Tahoe, 04.09.2007 02:59 |
| КРОКОДИЛ я имел в виду не все семейсво а определенный процесор из этого семейства А, в этом смысле. В свойствах проекта выберешь соответствующий камень. Встаёшь слева на название проекта > правая кнопка > Options > Target. |
| 1033. КРОКОДИЛ, 04.09.2007 12:41 |
| Tahoe Встаёшь слева на название проекта > правая кнопка > Options > Target. Спасибо! Потихоньку осваиваю компилер. |
| 1034. Dikoy, 04.09.2007 21:51 |
| Tahoe Но когда залезешь глубже, поймёшь, почему все эти хрени с визардами отдыхают. А когда залезешь ещё глубже, поймёшь, что код сгенерённый хренью с визардом тупо копируем в ИАР и нормально им перевариваем ![]() То есть сгенерил шкурку в CV, а далее пишешь уже под иаром. Слазий плиз в тему по МК |
| 1035. КРОКОДИЛ, 04.09.2007 23:12 |
| Dikoy То есть сгенерил шкурку в CV, а далее пишешь уже под иаром. Угу только IAR на все библиотечные функции и переменные сгенеренные CV выдает ошибки что неправильные они и нужно разбиратся что к чему -проще сразу под IARом писать ![]() |
| 1036. Dikoy, 04.09.2007 23:35 |
| КРОКОДИЛ Так я тебе и говорю - шкурку сгенерил и хватит. А функции типа гетчара и путчара такие же, как и в CV, только их надо ручками писать. Берёшь пример из ДШ и вставляешь. Фишка в том, что регистры обзываются одинаково, синтаксис языка одинаков. Если ИАР и возбранится на что, так там децл совсем поправить. Вот, лови: код: |
| 1037. КРОКОДИЛ, 05.09.2007 01:57 |
| Dikoy ИАР и возбранится на что, так там децл совсем поправить. Незнаю - у меня он забанил функцию АЦП,LCD,delay, и кусочки проекта которые компилятся в кодевижене,здесь выдают по 15 ошибок на 10 строчек , а потом он и свой собственный хидер забанил #include "iom48.h" Короче надоело мне с ним играться - пока буду пользоватся виженом -до зимы а там посмотрим.синтаксис языка одинаков Да вроде несовсем -впрочем сейчас некогда разбиратся -я лучше Ричи и Кернигана лишний раз почитаю............. |
| 1038. Tahoe, 05.09.2007 02:48 |
| КРОКОДИЛ и кусочки проекта которые компилятся в кодевижене,здесь выдают по 15 ошибок на 10 строчек Угу. И, обычно, устраняются правкой одной строчки по 5 шт. за раз. ![]() Ты читай, что за ошибки/варнинги. Тебе ж компиллер подсказывает, что не так, а не ругается для своего удовольствия. |
| 1039. КРОКОДИЛ, 05.09.2007 10:23 |
Tahoeкод:Error[Pe018]: expected a ")" C:\mega48\main.c 124 Warning[Pe223]: function "delay_ms" declared implicitly C:\mega48\main.c 125 Fatal Error[Pe035]: #error directive: This file should only be C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\INC\iom48.h 23 |
| 1040. Tahoe, 05.09.2007 14:33 |
| КРОКОДИЛ Error[Pe018]: expected a ")" C:\mega48\main.c 124 Ну дык ёлы-палы, "expected" это "ожидается". Где-то выше по тексту, ты со скобками лоханулся. А аукнулось это на 125-й строке файла C:\mega48\main.c Warning[Pe223]: function "delay_ms" declared implicitly C:\mega48\main.c 125 Предупреждение, что функция "delay_ms" задекларирована неявно. Т.е. не найден/не видится прототип функции. Fatal Error[Pe035]: #error directive: This file should only be C:\Program Files\IAR Systems\Embedded Workbench 4.0 Evaluation\avr\INC\iom48.h 23 Перевожу. Fatal Error - ![]() На самом деле, директива #error используется в Сях, когда надо прервать компиляцию. Т.е. обычно проверяется какое-то условие и если оно, допустим, выполняется, то компиляция прерывается, если нет, то компилим дальше. И см. везде последние цифпы, это номер строки, на которой обнаружилась ![]() |
| 1041. КРОКОДИЛ, 05.09.2007 16:08 |
| Tahoe Где-то выше по тексту, ты со скобками лоханулся. А аукнулось это на 125-й строке файла C:\mega48\main.c Не,- специально проверял несколько раз все нормально а скобки он на каждом ифе и какждом виле почемуто просит! ![]() И см. везде последние цифпы, это номер строки, на которой обнаружилась жоп ошибка. код:Тоесть ошибку он обнаружил в своем собственном хидере#include "iomacro.h" ![]() И еще вопрос: какие хидеры пишутся в кавычках -"хидер" а какие так <хидер> ? ![]() |
| 1042. Dikoy, 05.09.2007 19:23 |
| КРОКОДИЛ Warning[Pe223]: function "delay_ms" declared implicitly C:\mega48\main.c 125 Дык delay_ms - это функция библиотеки CV, в иаре она как-то по другому обзывается. Задефайни её в самом начале как иаровскую и не будет ошибки. а скобки он на каждом ифе и какждом виле почемуто просит! Особенности компилятора значит. Паскаль тоже любит скобки повсюду, хотя в доке написано, что для одного условия или операции скобки необязательны. у меня он забанил функцию АЦП,LCD,delay, Может регистры не так обзывались, может (и наиболее вероятно) ты вижновские дефайны иару не дал... Смотреть надо. Добавление от 05.09.2007 19:25: КРОКОДИЛ |
| 1043. Tahoe, 05.09.2007 19:58 |
| КРОКОДИЛ специально проверял несколько раз все нормально а скобки он на каждом ифе и какждом виле почемуто просит! Значит кривость где-то ДО этого возникла. какие хидеры пишутся в кавычках -"хидер" а какие так <хидер> ? "хидер" ищется только в текущей папке, а <хидер> ищется во всех папках, прописаных в путях проекта. |
| 1044. КРОКОДИЛ, 05.09.2007 23:00 |
| Dikoy Задефайни её в самом начале как иаровскую и не будет ошибки A как её ТАК задефайнить? Tahoe а <хидер> ищется во всех папках, прописаных в путях проекта. Так что все хидеры в папку с проектом слаживать? Значит кривость где-то ДО этого возникла. Да вроде нет ![]() код:Паскаль тоже любит скобки повсюду, Пробовал я их везде напихать- бесполезно. |
| 1045. Dikoy, 05.09.2007 23:31 |
| КРОКОДИЛ А чё тебя заклинило на переводе кода в иар?.. Жить скучно стало? ![]() |
| 1046. КРОКОДИЛ, 05.09.2007 23:36 |
| Dikoy Жить скучно стало? ![]() Ну да! ![]() Tahoe сказал что IAR -это очень круто -вот я и проверяю- насколько? ![]() |
| 1047. Tahoe, 06.09.2007 00:44 |
| КРОКОДИЛ Так что все хидеры в папку с проектом слаживать? Наоборот, просто пропиши в проекте пути к ним и всё. ![]() Пробовал я их везде напихать- бесполезно Да не надо ничего просто так ничего напихивать. Посмотри внимательно, в IARе же есть "подсветка" скобок. Пользуйся, не стесняйся. ![]() Добавление от 06.09.2007 00:46: КРОКОДИЛ |
| 1048. КРОКОДИЛ, 06.09.2007 01:56 |
| Tahoe Посмотри внимательно, в IARе же есть "подсветка" скобок. Пользуйся, не стесняйся Я ж говорил что буду три года с интерфейсом разбиратся -тяжело мне даются проги на вражеском языке ![]() Добавление от 06.09.2007 02:37: Не фигня какаято с этими скобками -причем невменяемая |
| 1049. Dikoy, 06.09.2007 02:46 |
| КРОКОДИЛ Tahoe сказал что IAR -это очень круто -вот я и проверяю- насколько? Ну это круто, только для того проекта оно тебе нафиг не надо. Бо выч. ресурса валом и памяти треть свободно. Нафига упираться то?.. ![]() |
| 1050. КРОКОДИЛ, 06.09.2007 03:07 |
| Dikoy и памяти треть свободно. Нифига,- то что уже написал 70 процентов памяти занимает а еще писать и писать.......... Нафига упираться то?.. Да мне непонятна фигня с этими скобками -студия ифы и вилы обходила стороной и IAR -туда же ![]() |
| 1051. Tahoe, 06.09.2007 04:14 |
| КРОКОДИЛ Да мне непонятна фигня с этими скобками А чего непонятного? Где-то, выше ошибки, влезла лишняя скобка. Надо только найти где. Раз речь про хидеры, достаточно сначала "задемить" их все и начать по очереди раскоменчивать, строку за строкой. Тупо и аккуратно, с самого начала. А если будешь всё кучей делать, рано или поздно в любой среде уткнёшься и запаришься. ![]() |
| 1052. КРОКОДИЛ, 06.09.2007 13:00 |
| Tahoe Где-то, выше ошибки, влезла лишняя скобка. Не, проверял несколько раз, и пробовал кусочками компилилить -по одному ифу отдельно,- таже самая фигня. А вчера скачал Сишный компилер для студии -так ошибок выдал еще больше чем на IARе. Сдается мне, что у меня кампутер дуру гонит, -лицензию на Касперского мне забанили ещё два месяца назад -може налезло на комп какойнибудь фигни -сегодня возьму свежий антивирус и поганяю паразитов. "задемить" "раскоменчивать" А как это по руски звучать будет? ![]() |
| 1053. Tahoe, 06.09.2007 14:17 |
| КРОКОДИЛ А как это по руски звучать будет? Закоментировать, раскоментировать: //#include <header4.h> #include <header3.h> //#include <header2.h> //#include <header1.h> |
| 1054. Dikoy, 06.09.2007 16:05 |
| КРОКОДИЛ 70 процентов памяти занимает а еще писать и писать.......... И влезет у тебя всё. Не влезет - поставишь оптимизацию на объём. |
| 1055. КРОКОДИЛ, 06.09.2007 17:54 |
| Dikoy Не влезет - поставишь оптимизацию на объём. Да, в принципе хорошая идея -мега48 поддерживает кварцы до 20мегагерц -так что скорости хватит! И кварцев 20мегагерцовых упаковочка имеется.Tahoe Закоментировать, раскоментировать: Понял. |
| 1056. Dikoy, 06.09.2007 19:51 |
| Да она и на 10 МГц ту задачу осилит, даже с оптимизацией на объём. Чуда не произойдёт... Ну ужмёт ИАР тебе +10%, оно тебя спасёт чтоли? На таких объёмах кода экономия будет незаметна. Вот если б ты проект килобайт на 10 компилил, то тут таки да! |
| 1057. КРОКОДИЛ, 07.09.2007 01:22 |
| Dikoy На таких объёмах кода экономия будет незаметна. Уговорил ![]() |
| 1058. КРОКОДИЛ, 20.09.2007 03:49 |
| Dikoy Почитал тут про частомеры -принцип работы понятен только с таймером непонятно ![]() 1)Какой из четырех таймеров нужно использовать? 2)В визарде много непонятных мне настоек для таймеров ,-как их правильно настроить? ![]() 3)И еще непонятно как по наполнению таймера останавливать счёт импульсов? -можешь изобразить кусочек кода? |
| 1059. Dikoy, 20.09.2007 18:34 |
| КРОКОДИЛ 1)Какой из четырех таймеров нужно использовать? Тот, у кого выше азрядность. ,-как их правильно настроить? Не знаю... Я в таймерах и ШИМах хреново понимаю ![]() Добавление от 21.09.2007 12:13: КРОКОДИЛ |
| 1060. КРОКОДИЛ, 21.09.2007 20:04 |
| Dikoy Поищи в теме про МК Не нашел чтото Нашел там только описание алгоритма работы и все ![]() А как работать с таймерами чёто немогу разобратся ![]() |
| 1061. majorPAE, 22.09.2007 08:09 |
| КРОКОДИЛ А как работать с таймерами чёто немогу разобратся Так же, как ты работаешь со счетчиками на рассыпухе. ![]() Смысл в том, что таймер - это тот же счетчик. Когда он досчитывает до конца, формируется флаг переполнения и (если ты разрешил прерывания от соответствующего таймера) выполняется прерывание. А таймер в это время продолжает считаь дальше с 0. Процедура настройки, как правило, заключается в следующем: 1. Установка битов, разрешющих работу соответствующего таймера; 2. Выбирается источник тактов для таймера. Чаще всего по умолчанию это внутренний генератор МК; 3. Выбирается и устанавливается нужный коэффициент предделителя (если он есть ) и предустановка (начальное число, записываемое в таймер);4. Настраивается прерывание от этого таймера и процедура обработки этого прерывания. Ну вот собственно и все... ![]() Не нашел чтото Плохо искал: http://forum.ixbt.com/topic.cgi?id=48:1119-52#1567 |
| 1062. КРОКОДИЛ, 23.09.2007 03:21 |
| Dikoy Сегодня удалось купить мегу8515, -теперь должно памяти хватить и лапок тоже! ![]() Добавление от 23.09.2007 04:45: majorPAE Добавление от 23.09.2007 04:56: Dikoy |
| 1063. majorPAE, 23.09.2007 10:03 |
| КРОКОДИЛ Может наоборот сделать -по приходу импульсов на вход инкриментировать переменную, а по переполнению таймера останавливать инкримент и выводить переменную на printf, потом её обнулять и опять инкримент до следующего переполнения? Плохо еще вкурил ДШ. Так не получится. Импульсы на вход таймера поступают постоянно, как только ты разрешил его работу он начинает считать. Это все, что ты можешь с ним (с таймером) сделать. Ну можно еще предварительно записать в него число, чтоб уменьшить время до переполнения. Можно, конечно и так, как ты хочешь. Но для этого нужно чтоб программа между прерываниями крутилась в цикле. И желательно постоянном, ни на что "не отвлекаясь", т.е. без проверок и ветвлений. Только при этом почти теряется основной смысл использования прерываний - освобождение процессора на время формирования фиксированоого временного интервала. ![]() Ведь что такое обработчик прерывания: это кусок программы, который располагается по конкретно определенному адресу в памяти программ, так называемому вектору прерывания. Он, вектор,как правило один (хотя может быть и несколько, зависит от "навороченности" МК). При получении прерывания МК заносит в так называемый стек адрес программной памяти, на котором находился в момент события, вызвавшего прерывание (по сути - оператор в тексте программы ) и начинает выполнять кусок программы расположенный тобой после вектора прерывания. Там обычно ты определяешь: от чего произошло прерывание и выполняешь соответствующие действия. После того как все сделано, МК возвращается туда, откуда его "сдернули" , и продолжает работу. Все просто... |
| 1064. КРОКОДИЛ, 23.09.2007 18:03 |
| majorPAE Все просто... Угу. -совсем запутался ![]() Так не получится. Так, а как тогда правильно написать алгоритм для скоростного частотмера? ![]() У меня мега8515 будет работать с внешним кварцем, -какой именно таймер нужно включить? -а то я совсем заблудился в даташите ![]() |
| 1065. majorPAE, 23.09.2007 18:31 |
| КРОКОДИЛ Угу. -совсем запутался В чем запутался?Так, а как тогда правильно написать алгоритм для скоростного частотмера? Ну, с конкретно "мега8515" эт придется тебе ждать Dikoy. Я эти кристаллы не знаю совсем. По ПИК-у бы расказал... ![]() |
| 1066. КРОКОДИЛ, 23.09.2007 19:04 |
| majorPAE В чем запутался? Таймеры имеют входы для внешнего сигнала? или нет? ![]() По ПИК-у бы расказал Забросил я PICи, -применяю их только тогда когда есть готовый проект и нужно его срочно сделать. С AVR интересней -здесь хоть чтото понять можно ![]() придется тебе ждать Dikoy Подождем, а я пока апноты пережёвываю............... |
| 1067. shemmer, 23.09.2007 19:06 |
| Здравствуйте помогите с АЦП на атмеге8 Нужно заставить многократно измерять напряжение на РА0 Если в прерывании делаю вычисление то результат верно отображается на индикаторе interrupt [ADC_INT] void adc_isr(void){ Vizm=ADCW; Vpr = (float) Vizm; Vpr = Vpr * 0.03128; Vdec = (int) Vpr; Vpr = Vpr - (float) Vdec; Vpr = Vpr * 1000; Vmili = (int) Vpr; } ADCSRA=0b11011111; ADMUX=0b11000000 Дальше преобразовываю в BCD и вывожу на LED. Но он делает преобразование 1 раз и останавливается. Если установить ADFR=1, то в протеусе на индикаторе кракозябры (может на железе будет нормально?) Как заставить делать преобразование многократно? |
| 1068. Tahoe, 23.09.2007 21:37 |
| КРОКОДИЛ Таймеры имеют входы для внешнего сигнала? или нет? Так, Беня! Таймер - это самый обыкновенный счётчик. Режим "захват" ( capture ) это и есть, когда он тактируется каким-то внешним сигналом. Всё остальное ( и наиболее часто используемое ), это когда используется источник клока внутри МК. Для твоего удобства, тебе предоставляют не один клок, а несколько разных, поделеные на 2, на 4, на 8 и т.д. Постарайся разделять, вопросы касающиеся железа МК и принципов действия частотомеров. Иначе будет полная каша в голове. Определись, сначала, ЧТО ты хочешь сделать, а потом решишь КАК ты это будешь делать. shemmer Как заставить делать преобразование многократно? Очевидно, что либо запускать многократно ( например по таймеру ), либо использовать free running mode. ADCSRA=0b11011111; Тебе за такое уши не обрывали в детстве? Пиши по-человечески, названия битов. а не всякие 10010101. ![]() |
| 1069. КРОКОДИЛ, 23.09.2007 22:17 |
| Tahoe Постарайся разделять, вопросы касающиеся железа МК и принципов действия частотомеров Я пока не в железо вьехать немогу не в частотомеры ![]() Определись, сначала, ЧТО ты хочешь сделать, Хочу сделать хороший частомер до 2,8гигагерца, -тоесть контроллер плюс дополнительный счетчик делитеель частоты. Есть контролеры mega48 и mega8515 - первый более предпочтительней так как в нем есть АЦП -тоесть можно еще вывести на экран показания об амплитуде сигнала -так сделано во вражеских частотмерах. Режим "захват" ( capture ) это и есть, когда он тактируется каким-то внешним сигналом. А я этого какраз незнал ![]() Чё посоветуешь -как организовать это безобразие? ![]() И какой таймер и как использовать? Искал в даташите на mega48 сведения о таймерах -у какого сколько бит,но так и не нашел -может где пропустил -портянка слишком длинная ![]() Сейчас пытался разобрать исходник частотомера на асме -ничего не понял, но там еще используется аналоговый компаратор -непонятно для чего? ![]() Добавление от 23.09.2007 22:49: Нашёл! -104 страница -правда с таким переводом все рано что нибудь понять трудно цитата: ![]() Добавление от 23.09.2007 23:00: А причем здесь PWM? |
| 1070. Tahoe, 23.09.2007 23:10 |
| КРОКОДИЛ правда с таким переводом все рано что нибудь понять трудно Мы выше уже необходимость аглицкого обсуждали. Больше того, тебе Dikoy про качество всех этих "переводов" уже говорил.Хочу сделать хороший частомер до 2,8гигагерца Я тебе порекомендую, как врач врачу , сначала сделать _плохой_ частотомер _до 100кГц_. Иначе не сделаешь вообще никакого.mega48 сведения о таймерах -у какого сколько бит,но так и не нашел Беня, Вы бредите! ![]() 8-bit Timer/Counter0 with PWM 16-bit Timer/Counter1 with PWM 8-bit Timer/Counter2 with PWM and Asynchronous Operation Ты вообще названия разделов в даташите смотришь? ![]() Добавление от 23.09.2007 23:16: А причем здесь PWM? |
| 1071. КРОКОДИЛ, 23.09.2007 23:25 |
| Tahoe сначала сделать _плохой_ частотомер _до 100кГц_. Иначе не сделаешь вообще никакого. Так а какая разница то? -все равно внешний высокоскоростной счетчик применятся будет А уж коофицент деления ему можно практически любой задать в пределах long int......Лучше что нибудь конкретное скажи -чтоб я мог вылезти из кольца непоняток......... Ты вообще названия разделов в даташите смотришь? Так нашёл уже -названия разделов посмотрел ![]() |
| 1072. Tahoe, 23.09.2007 23:45 |
| КРОКОДИЛ Лучше что нибудь конкретное скажи -чтоб я мог вылезти из кольца непоняток......... Что именно? Разжевать на 5-ти страницах принцип действия частотомера? Я столько "ниасилю". Попробуй сделать как-то так (http://www.google.com/search?q=%D1%87%D0%B0%D1%81%D1%82%D0%BE%D1%82%D0%BE%D0%BC%D0%B5%D1%80+avr&hl=ru&lr=&client=opera&rls=en&hs=GFX&start=10&sa=N) . |
| 1073. Dikoy, 24.09.2007 00:10 |
| КРОКОДИЛ Сегодня удалось купить мегу8515 Где ты это старьё выкопал? ![]() Ну а ты тогда написал чёнибудь или нет? Чёнибудь написал... Только уже давно убил. Чего там думать то? Счётчик тактируется от частоты МК, при желании ты эту частоту можешь поделить предделителем (в визарде настраиваешь). Ну и всё - счётчик считает по кругу. По переполнению можно настроить прерывание, в нём инкрементировать переменную. Я бы сделал прерывание INT0, настроил на any change (любое изменение). То есть любое изменение уровня на лапе вызывает прерывание. В прерывании определял, "1" или "0" на лапе и исходя из этого запускал или останавливал таймер. Соответственно, при остановке считывал бы значение таймера и переменной-счётчика, опосля чего их обнулял. Есно, у счётчика своё прерывание, но у INT выше приоритет, то есть при одновременном возникновении INT выполнится первым. Дальше из них считал бы период и далее - частоту. Вот и весь алгоритм твоего частотомера... |
| 1074. КРОКОДИЛ, 24.09.2007 01:40 |
| Dikoy Где ты это старьё выкопал? Где, где -на базаре! - кроме tiny2313,tiny26 и mega8515 ничего больше небыло -Мегу взял потому что у неё лапок много! -в дип корпусе- здоровенная! А радиомагазинов у нас просто нет ![]() По переполнению можно настроить прерывание, в нём инкрементировать переменную. Чёт опять не вьехал -а чем отмеряются временные промежутки? -вторым таймером чтоли?Добавление от 24.09.2007 02:03: И зачем останавливать и запускать таймер по преыванию? Добавление от 24.09.2007 02:22: Tahoe код:;************************** |
| 1075. Tahoe, 24.09.2007 03:58 |
| КРОКОДИЛ Глянь почту. Добавление от 24.09.2007 04:13: Выше, где я написал про capture. Я второпях фигню написал, во всяком случае сейчас перечитал и понял, что за заноза у меня сидела в голове. Касательно capture регистра МК, это просто "снимок" состояния таймера, в момент захвата. Вермут всё ещё действует Добавление от 24.09.2007 04:15: Коротко, насчёт того, что е тебе заслал. ЕМНИМС, там подсчитывается кол-во импульсов, за фиксированый интервал времени. |
| 1076. КРОКОДИЛ, 24.09.2007 04:43 |
| Tahoe так что не знаю, насколько понятно я сейчас изъяснился. Вроде как понятно -capture запоминает цифры в таймере. |
| 1077. Pyku_He_oTTyda, 28.09.2007 14:30 |
| КРОКОДИЛ Скинь мне писмецо, я твой адрес потерял. Отправлю что обещал. |
| 1078. КРОКОДИЛ, 29.09.2007 05:18 |
| Pyku_He_oTTyda Зы. Я сначала письмо тебе написал,а потом только смог попасть сюда и прочитать твой пост, -после того как мобильник пережил третью стирку в стиралке интернет стал здорово глючить -наверно сисадмины виноваты ![]() Добавление от 29.09.2007 05:33: Tahoe |
| 1079. Pyku_He_oTTyda, 29.09.2007 17:01 |
| КРОКОДИЛ Это высшее общение, на уровне подсознания. З.Ы. На письмо ответил |
| 1080. КРОКОДИЛ, 29.09.2007 20:09 |
ЗЫ. Я там еще вопросов накидал.......................пару мешков ![]() |
| 1081. КРОКОДИЛ, 06.10.2007 10:32 |
| ALL Долго и вдумчиво переводил даташит на мегу48 но так и несмог понять как мне организовать счет ![]() 1)Короче мне нужно считать 16разрядным таймером внешние импульсы, и по захвату 16битным таймером внешнего импульса запускать ещё 8разрядный таймер, а по переполнению 8 разрядного таймера останавливать счет в 16разрядном -как это правильно сделать? ![]() 2)В визарде кодевижена сразу включать 8разрядный таймер нельзя так как он должен включатся при захвате 16разрядным таймером внешнего импульса -тоесть програмно- как это сделать я немугу сообразить потому что у него целая куча непонятных настроек ![]() 3)Непонятно как остановить 16разрядный таймер? 4)И еще меня неустраивает то что 8разрядный таймер считает до 255, а мне нужен счет до 250, -как можно ограничить предел счета? чтобы переполнение происходило при 250? |
| 1082. Dikoy, 06.10.2007 17:22 |
| КРОКОДИЛ В визарде кодевижена сразу включать 8разрядный таймер нельзя так как он должен включатся при захвате 16разрядным таймером Зато можно посмотреть, что визард генерит, когда хочет его запустить ![]() Непонятно как остановить 16разрядный таймер? Опять же, смотрим, что генерит визард, когда этот таймер стоппед. И еще меня неустраивает то что 8разрядный таймер считает до 255, а мне нужен счет до 250, -как можно ограничить предел счета? чтобы переполнение происходило при 250? Записать в таймер число 5. Тогда он начнёт считать с 5 до 255 ![]() Подробнее вечером напишу, сейчас некогда... |
| 1083. КРОКОДИЛ, 06.10.2007 23:36 |
| Dikoy Записать в таймер число 5. Тогда он начнёт считать с 5 до 255 Я ненашел в даташите примера как его вписывать ![]() Добавление от 06.10.2007 23:41: Напиши какой у тебя контролер -без названия контролера откомпилить неполучается Добавление от 06.10.2007 23:46: Ыщё вопрос -как внутренний ИОН включить для АЦП ? |
| 1084. Dikoy, 07.10.2007 22:45 |
| КРОКОДИЛ Я ненашел в даташите примера как его вписывать В регистр таймера, котрый ты читаешь, как в любую переменную. мега8 там как внутренний ИОН включить для АЦП ? Ну дык визард напряги: #define ADC_VREF_TYPE 0xC0 // ADC initialization // ADC Clock frequency: 125,000 kHz // ADC Voltage Reference: Int., cap. on AREF // ADC Auto Trigger Source: None // Digital input buffers on ADC0: On, ADC1: On, ADC2: On, ADC3: On // ADC4: On, ADC5: On DIDR0=0x00; ADMUX=ADC_VREF_TYPE; ADCSRA=0x87; |
| 1085. КРОКОДИЛ, 08.10.2007 00:05 |
| Dikoy Тут еще непонятно -если таймер "стоппед" а прерывания у него установлены на захват фронта, то призойдет ли захват по приходу сигнала или таймер всётаки нужно сначала включить? |
| 1086. Dikoy, 08.10.2007 14:33 |
Смотря какое прерывание. Если обработчик имеет место быть, то в этом обработчике ты и запускаешь таймер. Если обработчик не предусмотрен (таймер запускается сам) то ты должен его предварительно настроить, а обработчик вызовется при переполнении. Но в АВР такого нету, кажется... ![]() Не силён я в таймерах... |
| 1087. КРОКОДИЛ, 08.10.2007 15:02 |
| Dikoy Не силён я в таймерах... А в графических дисплеях силен? ![]() ЗЫ.Скачал хидер и функцию работы графического дисплея 128на64 правда под 51 камень расчитана, теперь сижу разбираюсь -дефайны переделываю -но мне кажется что там чтото не так -посмотри может чёнибудь подскажешьхидер код:а это сам кодextern void WaitM005CReady(void); код:/* -------------------------------------------- */ |
| 1088. Dikoy, 08.10.2007 21:37 |
| КРОКОДИЛ Неужели под АВР исходник не нашёл? ![]() По моему в апнотах были коды для графики... что там с компиляцией? Я ж писал - мега8 там. Впрочем, это там и по инклудам видно. |
| 1089. КРОКОДИЛ, 09.10.2007 02:59 |
| Dikoy Неужели под АВР исходник не нашёл? Не, под AVR все на асме ![]() Я ж писал - мега8 там. Не, не писал или письмо недошло -такое часто бывает. там и по инклудам видно. Нифига по инклюдам не видно -кроме тактовой частоты процесора 8МГЦ нефига ненашел ![]() Вобщем 15 ошибок и 31 предупреждение, -позже ошибки соскирдую в один файл и пришлю. Добавление от 09.10.2007 03:45: Отправил письмо. |
| 1090. PitPit, 10.10.2007 14:09 |
| Спасибо за супер урок! Подскажите пожалуйста. Хочу подсоеденить к МК ATtiny2313 динамик. Как программно заставить его исполнять звуки разных частот? На языке Си. Спасибо! |
| 1091. 676038, 10.10.2007 15:59 |
| PitPit Схема и программа для 2313 которая проигрывает 5 мелодий. http://pol-sem.narod.ru/muson/muson.htm |
| 1092. BSVi, 13.10.2007 15:54 |
| Ссори, что влажу, но может кто знает. Хочк сделать макрос в ассемблерном файле, который будет подключаться к сишной проге (компилируется все avr-gcc) Макрос длинный, не буду писать полностью, главное, что там всречается сторока #define PWM_CHANNEL(PWM_CH) \ lds r19, PWM_CH+1 \ lds r18, PWM1 Ассемблер ругается на garbage at the end of line. Как заставить препроцессор обрабатывать выражения типа (PWM_CH+1) из макроса? Кстате, если это выражение только одно в define, то он отрабатывет нормально Добавление от 13.10.2007 16:31: Ага, докапался я до того, что дефан все в одну строчку валит. Как сделать перенос строки в дефайне? |
| 1093. sw1972, 13.10.2007 17:52 |
цитата: Вы забыли, скорее всего, добавить фигурные скобки (для макросов это также принято как и для функций). Попробуйте так: #define PWM_CHANNEL(PWM_CH) \ {lds r19, PWM_CH+1 \ lds r18, PWM1} Может, кое-где следует добавить по двоеточию, если необходимо И ещё, насколько я знаю, в макросах синтаксис не контролируется! Он контролируется при написании функций. Поэтому будьте готовы ко всяким неожиданностям при написании макросов. Я через такое проходил. Удачи! ![]() |
| URL: | http://forum.ixbt.com/topic.cgi?id=48:5298 |
Время GMT +04. Даты в формате dd.mm.yyyy. | |