-
- Обижаете, jaga-jaga. Вами приведены куски "как бы кода", а не код. Где у вас вход в прерывание, сохранение W, STATUS и BSR регистров, установка нового BSR, очистка бита прерывания, выход из прерывания..? Там прилично тактов набежит. Хотелось бы увидеть GM(313 знак., 11.09.2006 16:35, )
- так и у вас "как бы код" ;) w, status, bsr сохраняются автоматом в теневом стеке, так же восстанавливаются, бит прерывания очистить и все. так чта... - jaga-jaga(11.09.2006 17:25, )
- как бы пик еще не оказался быстрее по маш.циклам ;) - jaga-jaga(11.09.2006 17:27, )
- Тут вы немного разгорячились(:-). Вам нужно 96*2=192 байта памяти, а на первой странице только 128, так что BSR на первую страницу памяти вам надо устанавливать, хотите вы того или нет. GM(458 знак., 11.09.2006 17:47, )
- а при чем тут BSR? для косвенной адресации (наш случай) используются регистровые пары FSRx hi и low часть, которые jaga-jaga(389 знак., 11.09.2006 18:00, )
- Принято. А где поллинг? Вообще, лучше приведите завершенный код прерывания с вашими комментариями, чтобы было в одном месте. GM(180 знак., 11.09.2006 18:17, )
- поллинга тоже не будет ;) пусть будет разрешено лишь одно прерывание от модуля CCP jaga-jaga(218 знак., 11.09.2006 21:30, )
- Нет, так не пойдёт. У вас должно быть по крайней мере три прерывания: сравнение, переполнение и усарт, но есть только два вектора прерывания. GM(1063 знак., 12.09.2006 13:04, )
- Сложно общаться одними словами без блок-схем или кода показывающего функциональность. abivan(379 знак., 12.09.2006 15:30, )
- А никто и не обещал, что будет просто. Чувствую, что пора объяснить принципы работы еще раз(:-) GM(2525 знак., 12.09.2006 16:50, )
- Ответ: + abivan(415 знак., 13.09.2006 12:54, )
- как мне показалось идею до конца так никто и не понял, отсюда и вопросы выложить код ;) jaga-jaga(85 знак., 12.09.2006 16:02, )
- Согласен, его нет в изначальных условиях. Я вижу вам неудобно иметь три прерывания, давайте пока опустим его, пусть будет два (один на ум пойдёт(:-)). Давайте завершенный код двух прерываний. Посчитаем количество тактов, сравним, потом перейдем к GM(33 знак., 12.09.2006 17:02, )
- Идея абсолютно понятна, но производительность будет понятна только после выкладывания всего сопутствующего кода, которого, разумеется, нет - AVR(12.09.2006 16:21, )
- А никто и не обещал, что будет просто. Чувствую, что пора объяснить принципы работы еще раз(:-) GM(2525 знак., 12.09.2006 16:50, )
- Сложно общаться одними словами без блок-схем или кода показывающего функциональность. abivan(379 знак., 12.09.2006 15:30, )
- Нет, так не пойдёт. У вас должно быть по крайней мере три прерывания: сравнение, переполнение и усарт, но есть только два вектора прерывания. GM(1063 знак., 12.09.2006 13:04, )
- Упорядочивания таблицы в течение цикла по жизни не требуется в 99% случаев, потому что ШИМ далее фильтруется и его частота априори выбирается на два-три порядка выше частоты перестойки. А теперь представьте, что у вас у всех каналов значение 55/25. Это General(14 знак., 11.09.2006 18:27, )
- Нет, это 24 уставки. И программа должна отрабатывать оставшийся один процент случаев. В противном случае, это не программа, а любительская поделка на коленке. GM(1053 знак., 11.09.2006 19:39, )
- Нет проблем, упорядочивание уставок - правильное решение. Я просто хотел подчеркнуть тонкости. General(345 знак., 11.09.2006 20:53, )
- Все можно наладить, если вертеть в руках достаточно долго. Например, в прерывании выпихивать в порты только маску abivan(133 знак., 12.09.2006 10:07, )
- Мне кажется, суть возражений именно в в том, что если вылизать все тонкости, результат окажется эквивалентным традиционному. - General(12.09.2006 10:15, )
- А ХЗ все от постановки задачи зависит abivan(483 знак., 13.09.2006 13:08, )
- Спасибо, General. GM(609 знак., 12.09.2006 20:53, )
- Маа-аленькие поправочки AVR(1201 знак., 12.09.2006 21:45, , картинка)
- Хе-хе. Вылитый Блекигл :)))) - General(12.09.2006 21:34, )
- Дежавю 8-) - Гудвин(12.09.2006 22:23, )
- Я стараюсь :) - AVR(12.09.2006 21:40, )
- Хе-хе. Вылитый Блекигл :)))) - General(12.09.2006 21:34, )
- Благодарности -не ко мне. Это не я восстановил. Но я очень прошу вас- ответьте на мой вопрос, наконец. - General(12.09.2006 21:05, , ссылка)
- я не слежу особо, но мне кажется, что если =AlexD=(121 знак., 13.09.2006 15:32, )
- В связи с необоснованным переносом AVR'ом темы в мусорку и возвращением обратно (спасибо jaga-jaga?), я разместил код формирования рабочей таблицы на следующей странице --> GM(159 знак., 13.09.2006 15:55, , ссылка)
- Тебе решать, ты же автор. :-) =AlexD=(100 знак., 13.09.2006 19:51, )
- В связи с необоснованным переносом AVR'ом темы в мусорку и возвращением обратно (спасибо jaga-jaga?), я разместил код формирования рабочей таблицы на следующей странице --> GM(159 знак., 13.09.2006 15:55, , ссылка)
- Выложил код формирования рабочей таблицы --> GM(4549 знак., 13.09.2006 14:29, , ссылка)
- Это не код, а его описание. Полный ассемблерный листинг с подсчетом циклов на бочку! - AVR(13.09.2006 14:34, )
- ждем у моря погоды? - Gamma SPb(13.09.2006 04:55, )
- Дождик уже пошел :) --> - AVR(13.09.2006 11:34, , ссылка)
- я не слежу особо, но мне кажется, что если =AlexD=(121 знак., 13.09.2006 15:32, )
- Маа-аленькие поправочки AVR(1201 знак., 12.09.2006 21:45, , картинка)
- Мне кажется, суть возражений именно в в том, что если вылизать все тонкости, результат окажется эквивалентным традиционному. - General(12.09.2006 10:15, )
- Все можно наладить, если вертеть в руках достаточно долго. Например, в прерывании выпихивать в порты только маску abivan(133 знак., 12.09.2006 10:07, )
- Нет проблем, упорядочивание уставок - правильное решение. Я просто хотел подчеркнуть тонкости. General(345 знак., 11.09.2006 20:53, )
- Нет, это 24 уставки. И программа должна отрабатывать оставшийся один процент случаев. В противном случае, это не программа, а любительская поделка на коленке. GM(1053 знак., 11.09.2006 19:39, )
- поллинга тоже не будет ;) пусть будет разрешено лишь одно прерывание от модуля CCP jaga-jaga(218 знак., 11.09.2006 21:30, )
- Принято. А где поллинг? Вообще, лучше приведите завершенный код прерывания с вашими комментариями, чтобы было в одном месте. GM(180 знак., 11.09.2006 18:17, )
- а при чем тут BSR? для косвенной адресации (наш случай) используются регистровые пары FSRx hi и low часть, которые jaga-jaga(389 знак., 11.09.2006 18:00, )
- Тут вы немного разгорячились(:-). Вам нужно 96*2=192 байта памяти, а на первой странице только 128, так что BSR на первую страницу памяти вам надо устанавливать, хотите вы того или нет. GM(458 знак., 11.09.2006 17:47, )
- как бы пик еще не оказался быстрее по маш.циклам ;) - jaga-jaga(11.09.2006 17:27, )
- Ээ, уважаемый, Вы уже на "сам дурак" скатились вместо конкретного ответа --> - AVR(11.09.2006 16:39, , ссылка)
- ? шо это было? - GM(11.09.2006 17:38, )
- Настоящее имя AVR General(12 знак., 11.09.2006 18:30, )
- А миссиз Джонсон тогда кто, Gamma SPB, что ли(:-)? GM(63 знак., 11.09.2006 19:57, )
- Спалил :) - AVR(11.09.2006 18:39, )
- Настоящее имя AVR General(12 знак., 11.09.2006 18:30, )
- ? шо это было? - GM(11.09.2006 17:38, )
- так и у вас "как бы код" ;) w, status, bsr сохраняются автоматом в теневом стеке, так же восстанавливаются, бит прерывания очистить и все. так чта... - jaga-jaga(11.09.2006 17:25, )
- Обижаете, jaga-jaga. Вами приведены куски "как бы кода", а не код. Где у вас вход в прерывание, сохранение W, STATUS и BSR регистров, установка нового BSR, очистка бита прерывания, выход из прерывания..? Там прилично тактов набежит. Хотелось бы увидеть GM(313 знак., 11.09.2006 16:35, )