Схемы металлоискателей MD4U http://md4u.ru/ |
|
Роскошный звук на PIC-e http://md4u.ru/viewtopic.php?f=24&t=2876 |
Страница 2 из 3 |
Автор: | Andy_F [ Ср: 03 июн 2009 19:34 ] |
Заголовок сообщения: | |
RabidRabbit писал(а): Тю, достало - не читай
"Гуляй, Вася!" |
Автор: | RabidRabbit [ Ср: 03 июн 2009 19:39 ] |
Заголовок сообщения: | |
Синус писал(а): Компилятор не при чём (если там компилятор, а не его подобие).
Варианта два: - либо Вы смотрите буфер ЖКИ; - либо автор программы начудил. (у меня на WinAVR меню работает из памяти программ). На пямять надеяться не стал, скачал прошивку 1.8.1 и запустил под AVR Studio, эмулятор AVR Simulator, на пины кнопок навесил единицы и запустил. Подождал, нажал паузу (~7.2 секунда отработала программа), смотрю дамп ОЗУ - в основном всё забито 0xFF, но попалось место, где есть названия всех пунктов меню, причём размещены они достаточно свободно, и ещё слова on и off. Ну не похоже это на буфер ЖКИ, хотя, может, буферы разные бывают |
Автор: | RabidRabbit [ Ср: 03 июн 2009 19:40 ] |
Заголовок сообщения: | |
/RR/ писал(а): Ну так чего "оптимизаторством" занимаемся тогда? Слабо с нуля?
Можно поподробнее, что значит "с нуля"? |
Автор: | Синус [ Ср: 03 июн 2009 19:57 ] |
Заголовок сообщения: | |
RabidRabbit писал(а): попалось место, где есть названия всех пунктов меню, причём размещены они достаточно свободно, и ещё слова on и off. Ну не похоже это на буфер ЖКИ, хотя, может, буферы разные бывают
Автор (косвенно) уже сознался в содеяном. (продублировал в ОЗУ пункты меню, хранящиеся в памяти программ) И, видимо, глубоко раскаивается и "больше не будет" |
Автор: | Alteh [ Ср: 03 июн 2009 20:04 ] |
Заголовок сообщения: | |
А "с нуля" и значит - с нуля. Придумываешь идею, садишься и реализуешь. Очень просто. Здесь таких "громогласных" низвергателей побывало - не пересчитать. Но что-то не помню ни одного, кто бы в последствии что-то своё выставил на ветрину (пусть даже комерческое). Так что для начала надо выдумать хотябы простенький пинпоинтер, а уж потом "гнуть пальцы". P.S. Кстати, я не помню, чтобы Andy_F с вами пил на брудершафт. Или это по принципу "форум всё спишет"? |
Автор: | RabidRabbit [ Ср: 03 июн 2009 20:08 ] |
Заголовок сообщения: | |
Alteh писал(а): А "с нуля" и значит - с нуля. Придумываешь идею, садишься и реализуешь. Очень просто. Здесь таких "громогласных" низвергателей побывало - не пересчитать. Но что-то не помню ни одного, кто бы в последствии что-то своё выставил на ветрину (пусть даже комерческое).
Так что для начала надо выдумать хотябы простенький пинпоинтер, а уж потом "гнуть пальцы". P.S. Кстати, я не помню, чтобы Andy_F с вами пил на брудершафт. Или это по принципу "форум всё спишет"? Мне хочется понять - "с нуля" - это железо плюс программа или только программа? А что там про брудершафт? Если тебя коробит обращение на "ты", прошу прощения, фидошная привычка. |
Автор: | /RR/ [ Чт: 04 июн 2009 11:40 ] |
Заголовок сообщения: | |
RabidRabbit писал(а): Мне хочется понять - "с нуля" - это железо плюс программа или только программа?
Ну хотя бы программа. Впрочем, в процессе должны появиться и аппаратные изменения, пусть и не большие. Понимаешь, я ничего против не имею, просто коробит, когда выходит такой вот красавец, который ничего (на этом форуме) сам не сделал и начинает лажать кого-либо, в особенности заслуженных... |
Автор: | RabidRabbit [ Чт: 04 июн 2009 11:57 ] |
Заголовок сообщения: | |
/RR/ писал(а): Ну хотя бы программа. Впрочем, в процессе должны появиться и аппаратные изменения, пусть и не большие.
Понимаешь, я ничего против не имею, просто коробит, когда выходит такой вот красавец, который ничего (на этом форуме) сам не сделал и начинает лажать кого-либо, в особенности заслуженных... Программа, как ни странно, написана с "нуля" - т.е. в нотепаде++ сделал новый файл и пошёл писать. На счёт аппаратных изменений - тут моя позиция такова, что если человек решится залить в девайс прошивку от неизвестного автора (то бишь, меня) - то перепаивать для этого устройство этот человек точно не станет. Должна быть совместимость. Насчёт лажания - я высказал своё мнение по поводу использования ОС в микроконтроллерах с ограниченными (на мой взгляд ресурсами) или там, где эта ОС нужна только для "галочки". Не более того. На что некоторые товарищи, скажем так, слегка возбудились Также мне не понятно, зачем копировать константные строчки из программной памяти в ОЗУ - это моё непонимание, похоже, вообще было воспринято, как личное оскорбление. |
Автор: | /RR/ [ Чт: 04 июн 2009 12:51 ] |
Заголовок сообщения: | |
Не очень то люблю спорить... Уже жалею, что ввязался. В блокноте И что, совсем не глядели в оригинал? Наверное, что-то всё же было просто "сказано своими словами". Про совместимость согласен, если речь идёт просто об альтернативной прошивке. В данном случае основной целью не является получение минимального объёма кода. Это может быть оправдано разве что для серийного производства, чтобы сэкономить 20 центов, применив контроллер с минимально необходимым объёмом памяти. Здесь же я не думаю, что стоит писать на голом АСМе, чтобы сэкономить 10 рублей на контроллере. Да и потом, насколько я знаю, автор использовал RTOS для собственного обучения, а не для того, чтобы кому-то было от этого хорошо. |
Автор: | Andy_F [ Чт: 04 июн 2009 13:02 ] |
Заголовок сообщения: | |
RabidRabbit писал(а): Насчёт лажания - я высказал своё мнение по поводу использования ОС в микроконтроллерах с ограниченными (на мой взгляд ресурсами) или там, где эта ОС нужна только для "галочки". Не более того. На что некоторые товарищи, скажем так, слегка возбудились Также мне не понятно, зачем копировать константные строчки из программной памяти в ОЗУ - это моё непонимание, похоже, вообще было воспринято, как личное оскорбление.
Уважаемый, если бы что-то там было воспринято, как оскорбление, Вас бы уже не было на этом форуме. Админ, это дело такое - "коварен, капризен, злопамятен" (с) . Вам было сделано, скажем так, замечание, за некоторую назойливость. Один раз высказал своё мнение, второй раз то же самое, третий... Все уже поняли, что Вы под ОС не пишите, и на Си, судя по всему, тоже не очень. Не пишите на здоровье, слава богу, что хоть что-то умеете, некоторые здесь вообще не знают, за какой конец держат паяльник. |
Автор: | RabidRabbit [ Чт: 04 июн 2009 13:37 ] |
Заголовок сообщения: | |
/RR/ писал(а): Не очень то люблю спорить... Уже жалею, что ввязался. В блокноте И что, совсем не глядели в оригинал? Наверное, что-то всё же было просто "сказано своими словами". Про совместимость согласен, если речь идёт просто об альтернативной прошивке. Я нигде и не писал, что создал новый прибор - всего лишь прошивка с открытыми исходниками /RR/ писал(а): Да и потом, насколько я знаю, автор использовал RTOS для собственного обучения, а не для того, чтобы кому-то было от этого хорошо.
Упс, вот и ключевая фраза |
Автор: | Reset [ Пн: 16 ноя 2009 23:17 ] |
Заголовок сообщения: | |
Andy_F писал(а): RabidRabbit писал(а): Насчёт лажания - я высказал своё мнение по поводу использования ОС в микроконтроллерах с ограниченными (на мой взгляд ресурсами) или там, где эта ОС нужна только для "галочки". Не более того. На что некоторые товарищи, скажем так, слегка возбудились Также мне не понятно, зачем копировать константные строчки из программной памяти в ОЗУ - это моё непонимание, похоже, вообще было воспринято, как личное оскорбление. Уважаемый, если бы что-то там было воспринято, как оскорбление, Вас бы уже не было на этом форуме. Админ, это дело такое - "коварен, капризен, злопамятен" (с) . Вам было сделано, скажем так, замечание, за некоторую назойливость. Один раз высказал своё мнение, второй раз то же самое, третий... Все уже поняли, что Вы под ОС не пишите, и на Си, судя по всему, тоже не очень. Не пишите на здоровье, слава богу, что хоть что-то умеете, некоторые здесь вообще не знают, за какой конец держат паяльник. Я кнешна понимаю, что задавить "нуба" авторитетом - святое дело, а доказательная база? Очень интересно было бы из уст мэтров (а также более мэтров и даже 2х мэтров 20 сантымэтров) услышать хотя бы одну причину, по которой так уж "достало" (притом - с 2005го года, если верить датировке форума) читать, что на 8битки ОС и даром не нужна. НТП отбросим, восьмибитки к нему имеют мало отношения - это уже классика. Так причина-то есть? Желательно с простейшим примером из оперы (С позволяет в n раз сократить время написания; в 0,n раз ускорить... блаблабла, ну хоть что-нибудь). P.S. Пишу на asm для AVR. На С для ARM (и для долбаной OpenAT приходилось), на C# для PC уже переучиваюсь. При этом до сих пор считаю, что писать на 8 бит контроллеры надо в асме. |
Автор: | Petrucho [ Вт: 17 ноя 2009 1:18 ] |
Заголовок сообщения: | |
За всё в этом мире приходится платить. За С - в обмен на портитуемость и скорорость написания кода - объёмом и скоростью выполнения. За АСМ - временем написания и привязкой к конкретному контроллеру. А операционная система - позволяет удобно распределять приоритеты выполняемым задачам пусть даже и на 8-и битном контроллере. Вам дали свой кусок работы - непрося в замен ничего, нужно сказать спасибо. С каждым годом контроллеры становятся и дешевле и быстрее. И что действительно ценно - это конечный результат. Будь ты хоть гений хоть крутой программист - главное конечный результат. Как ты его получил - хоть на АСМ хоть на С значения не имеет. Кстати а почему в notpad++ а не в pn++ ? Информации по ОС для микроконтроллеров в сети хватает - почитайте. А вдруг и вам пригоится. На АСМ уже давно никто не пишет... ещё в машинных кодах вспомните как HEX файлы ручками писали - когда под контроллер ASM компилятора небыло |
Автор: | Random [ Вт: 17 ноя 2009 1:44 ] |
Заголовок сообщения: | |
Petrucho писал(а): На АСМ уже давно никто не пишет...
Извините, дорогой, я иногда пишу на АСМ обработчики прерываний. |
Автор: | Petrucho [ Вт: 17 ноя 2009 2:26 ] |
Заголовок сообщения: | |
Хорошо Рандом зарисовался Это нужно делать когда ресурсов контроллера не хватает. Но АСМ вставки не панацея... Как варриант достаточно перефразировать строки на СИ пока компилятор не сгенерит более красивый код... Иногда в А+Б достаточно поменять местами А и Б. А считали сколько в любимом ПИК-е занимает сохранение стека, вход в прерывание, проверка источника прерывания и выход из прерывания и возврат из стека по сравнению с самим кодом прерывания? P.S. Не вставки АСМ говорят о качестве кода. Вот попробуйте свой глаз циклопа переложить на другой контроллер хоть 8051 хоть АВР хоть 18-ый ПИК - и придётся всё начинать сначала. А в нормальном коде - только инициализацию периферии переписать, и кое где подправить... Вот это высший пилотаж. АСМ вставки говорят о Вашей ошибке при выборе контроллера. |
Автор: | Alteh [ Вт: 17 ноя 2009 23:42 ] |
Заголовок сообщения: | |
Пардон, но параллельных процессов там хватает. Их, конечно, приходитсяставить в "очередь", но параллельность от этого не исчезает |
Автор: | Petrucho [ Ср: 18 ноя 2009 8:38 ] |
Заголовок сообщения: | |
Вот вам и пример процессов в МД: Процесс А Процесс Б Процесс В и так далее... А если серьёзно то как вы строите программу? - либо по прерываниям, - либо pooling (т.е. программа в цикле проверяет условия), - либо и то и другое. А вот теперь представьте что пулингом опрашивается много различных источников. Как вы распределите приоритетность и процессорное время на каждую из задач? Ну приоритетность положим решается очередностью опроса. А что если задачи в начале проверки условий загрузят так что последние условия не будут проверятся вообще никогда? Или допустим как вы ограничите время выполнения подпрограммы? У вас ведь пока она не выполнится до конца кроме как по прерыванию ничего дрогого с ней в параллель вополнятся не может? Так вот ОС позволяет очень удобно решить эти задачи, а так в ваших программах в одни моменты времени проц перегружен что АСМ вставки приходится делать, а в другие долбится в холостом цикле. ОС позволяет распределить нагрузку на процессор более равномерно. Конечно никто не спорит что можно сделать и без ОС, но почему вы свои проги под ПС пишите на С шарп а не к примеру на АСМе или в машинных кодах и не запускаете их вне любимой оконной ОС? Просто некоторые специалисты "рабы" своих семейств контроллеров. Привык на АСМе под ПИКи - а всё что не на АСМе и не под ПИКи - это всё плохо. Ну и лобайте на здровь на чём хотите - только прегресс не стоит на месте... он движется в перёд но вас это не касается - вы довольны тем что умеете - живите счастливо в своём маленьком мире, только не хайте пожалуйсто всего того что не понимаете. |
Автор: | /RR/ [ Ср: 18 ноя 2009 14:09 ] |
Заголовок сообщения: | |
Я ещё раз предлагаю закончить этот бесконечный спор. Каждый останется при своём мнении, всё как обычно... Кстати, на серьёзных форумах (к примеру, на Электрониксе) разговоры о том, что лучше: ассемблер или Си, попросту запрещены. По понятной причине. |
Автор: | Сергей_П [ Ср: 18 ноя 2009 16:58 ] |
Заголовок сообщения: | |
RabidRabbit писал(а): с генерацией TX и квадратурных RX разобрались, это делают таймеры...
Таймеры сами биты портов устанавливают? Если это ПЛИС, то соглашусь, а с контроллером не всё так гладко... |
Автор: | RabidRabbit [ Ср: 18 ноя 2009 17:58 ] |
Заголовок сообщения: | |
Что-то я тебя не понял Есть таймеры, они настраиваются на определённый режим работы (для этого не нужен отдельный параллельный процесс, так как настройка один раз делается), далее для движения фазы нужно только записать значения в 4 регистра. На сколько надо, на столько и подвинешь. А, блин, допёрло В AT91SAM7S, как и в ATmega и ATtiny (про другие не скажу, не использовал) таймеры могут напрямую управлять ногами контроллера. Ау, проснись! |
Автор: | Сергей_П [ Ср: 18 ноя 2009 18:07 ] |
Заголовок сообщения: | |
[quote="RabidRabbit"][/quote] Я, не большой спец по контроллерам... Чем, прерыванием, таймер дергает ноги? |
Автор: | RabidRabbit [ Ср: 18 ноя 2009 19:37 ] |
Заголовок сообщения: | |
Никакие прерывания при этом не используются, просто указываешь, что по достижению счётчиком такого-то значение нужно вот эту ногу поставить в 0 (в 1, или инвертировать), а по достижении другого значения - поставить в 1(в 0, или инвертировать). Там вариантов куча |
Автор: | /RR/ [ Ср: 18 ноя 2009 21:00 ] |
Заголовок сообщения: | |
Предлагаю к критике в качестве параллельных процессов следующие позиции: 1) Оцифровка входного сигнала и его обработка. 2) Контроль батареи питания с частотой... ну, 1-10 раз в секунду. 3) Генерация звуковых сигналов заданной длительности и частоты. 4) Выработка управляющих сигналов для аналоговой части схемы: например, импульс сброса длительностью 500мс для статического IB-прибора. 5) Включение подсветки ЖКИ на 5 секунд при нажатии клавиш клавиатуры. 6) Опрос клавиатуры с частотой 500-1000 раз в секунду. Чаще 1 кГц не имеет смысла. |
Автор: | RabidRabbit [ Ср: 18 ноя 2009 21:45 ] |
Заголовок сообщения: | |
Оцифровку сразу выкидываем - в AT91SAM7S данные от АЦП в замечательно перекинет PDC, а пинать АЦП будет таймер. Контроль батареи питания - в конце оцифровки пнуть АЦП, PDC запишет результат, опять же дёрнет прерывание - посмотреть результат - тьфу. Генерация звуковых сигналов - есть четыре канала PWM, вот и полифония Включить подсветку ЖКИ на 5 секунд - взводим в RTC аларм - и вуаля Опрос клавиатуры с частотой 1 кГц - это, по-моему, только для марсианских коммандос (см. Альфред Бестер, "Тигр! Тигр!"), и 100 Гц хватит Если хочется опрашивать постоянно с неизменной частотой - прицепить к интервальному таймеру (PIT) и забыть И вообще, есть такая штука, как "очередь таймеров" Ну не винда это, которая в тредпуле про запас 512 потоков держит |
Автор: | Сергей_П [ Чт: 19 ноя 2009 6:53 ] |
Заголовок сообщения: | |
[quote="RabidRabbit"][/quote] Вы, попробовали бы сначала, а потом бы уже плевались на элементарщину... Всё же зависит от задач поставленных для обработки контроллером, а они имеют обыкновение накапливаться и почему-то норовят вылезти именно сейчас и сразу... Тот же фазовый сдвиг, или прямая оцифровка входных данных вообще "священная корова", которую пропускают в первую очередь... и какой-то выход сравнения таймера далеко не всегда спасает ситуацию (мне, например, нужно дергать 6-ью ногами для формирования времянки TX/RX..)... Каждому, своё... и единого лекарства - нет... |
Страница 2 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |