Цитата(SasaVitebsk @ Sep 23 2008, 20:09)

Высскажу несколько соображений общего характера. В принципе они не принципиальны, и если они вас заденут, то просто проигнорируйте их. Во всяком случае не пытаюсь вас задеть либо обидеть, а хочу помочь осмыслить. Итак...
1) Вот такая конструкция мне не понравилась. "*(Ubat+i) = ADCH;"
2) Или я чего-то просмотрел, или ваш main выполнится 1 раз и станет колом. Или каждый раз переинициализация, короче даже не знаю. Я так не делаю. Обычно в main идёт инициализация и главный цикл. Бесконечный.
3) по АЦП.
4) Ответ на вопрос по АЦП.
Никаких обид, более того, критика по всем статьям даже приветствуется, темболее если она происходит как сейчас - в рамках абсолютно нормального общения... Я потому и создал здесь тему, чтобы слышать, что я делаю "неправильно", т.е. получать советы, которые связаны именно с практической частью и опытом...
Теперь по пунктам:
1) Как раз вот ситуация, описанная парой строк выше) Наличие у вас практического опыта, в отличие от меня). Когда есть (пусть и не очень большой, но всё же) опыт программирования на Visual C++ под винду, о ресурсах не очень задумываешься в большинстве задач... Так что это естественно дело наживное=), на данном этапе оптимизация кода для меня - предстоящий этап, когда непонятно как делать - надо сделать "по-тупому", а потом смотреть, что "сократить"... по крайней мере в отношении меня - это так=)). Хотя замечание абсолютно справедливо!!!... как впрочем и все дальнейшие=)
2) Да, пока в таком виде, просто опять же повторюсь пока поставил себе задачу понять как запустить АЦП=)
3) Тоже как и везде целиком согласен. По правде сказать об этом на данном этапе я не думал, хотя вместе с тем стоит отметить, что по сути преобразование АЦП - это и есть по факту та задача, которая требуется в данном случае... Именно собрав все 9 результатов можно будет двигаться дальше... Всё, что ещё предполагается сделать на этой плате - это "приклеить" UART для считывания текущего положения дел по персоналке (но это будет позже... Так что возможно в этом разделе появится ещё одна тема в будущем=). Хотя это что называется как пойдёт, пока думаю, что не должна=)), ну и соответственно на остальные выводы ATmeg'и выставлять различные значения как раз в зависимости от данных по АЦП...
4) Понял...
Цитата
Никто не обратил ваше внимание, поэтому, пока вы еще не получили по лбу граблями, на которые наступили здесь, это сделяю я: переменная, которая изменяется в прерывании, а используется где-то в другом месте программы, должна быть объявлена с квалификатором volatile. Раз вы пользуетесь WinAVR, вам стоит очень внимательно проитать документ FAQ.html в папке документации avr_libc. Там этот момент описан под номером 1, а кроме него вы найдете там еще довольно много очень полезной информации.
P.S. Для того, чтобы ваш код выглядел таким же читаемым как у SasaVitebsk, используйте для его оформления иконку с символом "#", а не иконку ввода цитаты, как вы делаете сейчас.
Спасибо! Ситуация целиком повторяет описанную - замечания по наставлению "на путь истинный" с точки зрения указаний слабых мест - только приветствуются...
Спасибо!=)