Свежие обсуждения
Микроконтроллеры

Ликбез по программированию PIC

1 45 99

Splav56: Книга Харари, лежит на рапидшаре.
Скачал, спасибо. Отличная книга! Великолепно написана! Много примеров! Сижу, читаю. По мере чтения накатывается угнетенное состояние духа. Еще несколько минут полистаю и брошу. Пролистал до конца - о программах и конечных автоматах ни слова. Раздражение растет. Уже запутался в понятиях, терминах, формулировках и формулах. А-а-а..! Splav56, вы сами ее читали?.. За кого вы меня принимаете?.. Еще несколько прочитанных страничек и можно будет покупать новый монитор, так как старый пострадает от тяжелого предмета, подвернувшегося под руку. ......
Бух!...Бам!...Бах!...Трах!...
Пересел за другой компьютер. Продолжаю читать. Та-а-ак, сколько еще компьютеров тут у нас осталось?
Короче, знаете, что это все мне напоминает? Это, как если бы в детстве, когда у меня появился интерес к радиотехнике и я намылился бы "замутить" свой первый радиоприемник, ко мне подошел бы "строгий дядя" и отнял бы у меня все деталюшки - побрякушки. Из "добрых" побуждений, между прочим. Усадил бы меня за толстенную монографию по физике твердого тела для ВУЗов, приговаривая при этом, что начинать надо именно с этого, иначе может выработаться "дурной тон" при запайке транзисторов в схему.
Вряд ли я тогда стал бы радиолюбителем, и как следствие, никогда бы никто этих моих разглагольствований здесь не увидел.

 

Считаю, что на первом этапе от этих книг пользы мало, а охоту они отбить могут. Монографии по физике подождут. Но схему детекторного приёмника нарисовать самому - неужели сложно? Тем более, что уже сделан и заработал простой приёмник прямого усиления!
Граф и алгоритм для программиста - всё равно что схема для радиомонтажника. Простые конструкции можно с ходу паять, сразу. Безо всяких схем. И сложные можно. Только со схемой-то проще и лучше!
Конечно, лучше совмещать теорию с практикой. Голая теория быстро способна довести до тошноты. Поэтому и дан "зелёный свет" написанию кода программ. Однако ж, не кодом единым...
Поэтому рекомендую всё-таки нарисовать учебный граф для одного мигающего светодиода. Проще некуда. Помогут в этом простые конкретные вопросы и ответы на них. Сколько возможно состояний? Какие? Какие переходы между ними возможны? При каких условиях они должны происходить? Какие действия должны при этом выполняться? и т.п.
Вовсе не обязательно строить граф по всем правилам и "законам жанра". У нас ликбез в конце концов, а не защита докторской Поэтому рисуем так, как подсказывает логика и здравый смысл.

Zandy, рапидшара мне почему-то недоступна. Так что прошу положить книгу в файлообменник, либо прислать мэйлом. Мне тоже интересно посмотреть.

И ещё одна аналогия. Написание программ на ЯВУ похоже на изготовление девайсов с микросхемами. Получается, что многое уже сделано за нас. Остаётся состыковать имеющиеся блоки. Соответственно, ассемблер - изготовление из отдельных деталюшек.
Никто не запретит нам, к примеру, собрать простой УНЧ на К174ХА10. Или простой приёмник прямого усиления на ней же. Однако, супергетеродин сделать на ней быстрее и проще, чем на рассыпухе. Точно так же программу для мигания светодиодом можем хоть на Си написать, хоть на Бейсике, хоть на асме. А вот сложное устройство делать на асме довольно трудоёмко.

 

picmaniac: Так что прошу положить книгу в файлообменник, либо прислать мэйлом. Мне тоже интересно посмотреть.
С файлообменником пока не разбирался. Выложил пока сюда (как бы, типа мой сайт ) http://andyz.mylivepage.ru/home/index
Если будет сильно тормозить, скажите, суну в другое место.
Да, сам файл http://andyz.mylivepage.ru/file/49/618/Graph_Theory.rar

 

Ничего себе размерчик... эдак на полчаса по модему. Спасибо, интересно будет почитать.

Что ж, видимо пришло время подумать над терзающим Zandy вопросом - что будем делать дальше? Какие будут предложения, уважаемые участники? Хотелось бы увидеть побольше мнений, так что не стесняйтесь высказываться. Мозговой штурм!

 

Ну, например, контролировать частоту низкочастотного сигнала, к примеру 50 Гц, поступающего на вход м/к через формирователь (или меандр с такой же частотой), а в качестве индикатора - светодиод, который будет постоянно гореть, если частота в номинале, мигать с небольшой частотой, если частота отклонилась на 25% и гаснуть, если частота снизится на 50%

 

Zandy: Splav56, вы сами ее читали?..

Нет. Я ее листал. После того как скачал. Ощущения примерно такие же. Но прочитать стоит, там есть интересные вещи. Конечно нам бы больше подошли "Занимательные задачи по теории графов" из репертуара средней школы, но её в эл. виде я не нашел.

 

picmaniac, ну вот он родимый в аттаче. Замечу, нарисовал только после того, как мысленно представил себе, как должна выглядеть программа.

 

Splav56: Ну, например, контролировать частоту низкочастотного сигнала, к примеру 50 Гц
Годится! Это можно быстренько сляпать. Какой критерий выберем? Что будем считать, длительность полупериода (периода) или количество периодов (полупериодов) за фиксированное время?
Уточнение. Если F = 50 +/- 25% Гц, то горит постоянно. Если более 50%, то гаснет. Так? 25% и 50% - не слишком большие цифры?

 

SAK: загрузка счёчика перед завершением прерывания может привести к нестабильности временных интервалов при длительной обработке прерывания.
Vlad_Petr: Ничего подобного...
Возьмем такой случай: частота генератора 4 МГц прерывания происходят с частотой 20Гц, из этого следует, что предделитель работает с коэффициентом пересчёта 1:256 и за эти 50 мс происходит приращение счетчика таймара 195 раз. Т. е. после выполнения каждых 256 команд происходит приращение значения счетчика таймера. Теперь представим, что при обработке прерывания потребовалось выполнить 300 команд. За это время уже прошёл один цикл счёта предделителя и счетчик таймера увеличился на единицу, но мы не успели в него загрузить начальное значение, а загружаем его только теперь. Следовательно время до следующего прерывания увеличится на 256 тактов. И эта ошибка действительно будет зависеть от того сколько тактов выполнялась обработка прерывания и в общем случае это значение может скакать в широких пределах от прерывания к прерыванию.

 

Zandy: Короче, я как-то призадумался. Как дальше продвигаться?
Тогда взгляните на ЦЕЛЬ. Полагаю, Вы занялись этим делом чтобы в СВОИХ РАБОТАХ использовать контроллеры.
Может выберете какую для начала несложную именно Вашу задачку, отложенную ранее по известным теперь причинам, и начнете...?