Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей... |
13.06.2012, 11:49
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Bumbarra
|
Да правильно написанный код примитивного мигания двух десятков диодов вообще займет, грубо говоря, не более сотни слов, вместе с инициализацией...
|
А говорят, что только охотники и рыбаки могут так сочинять! А они сейчас нервно курят в сторонке.
Это получается, что на каждый светодиод достаточно не более пяти слов? Очень смело. Впрочем, если все светодиоды будут мигать одновременно... так можно и сотней светодиодов мигать.
|
|
|
|
13.06.2012, 11:58
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Когда я писал программы для 1816ВЕ35/48, было вполне естественно, что память программ разбита на страницы по 256 байт, и условные переходы работают только внутри текущей страницы. Поэтому надо было самому отслеживать заполнение памяти, на границах страниц вручную ставить безусловные переходы, или пользоваться подпрограммами, а тело основной программы втиснуть в одну страницу, и из нее их вызывать.
|
|
|
|
13.06.2012, 12:53
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Alex9797
|
Это получается, что на каждый светодиод достаточно не более пяти слов?
|
Чтобы изменить состояние порта микроконтроллера в PIC достаточно 1 команды.
Для реализации софт задержки достаточно соорудить пару циклов в цикле ну это до 20 команд. Так что 100 команд на эту программу вместе с инициализацией будет более чем достаточно, конечно если писать на асемблере.
К примеру моя программа для PIC12F629 занимала примерно 1500 слов и умела следующее:
1. Софт эмуляция приема передачи через USART которого в этом чипе нет.
2. Распознавание команд получаемых через ИК приемник с пульта ДУ.
3. Прием отправка пакетов через осветительную сеть с проверкой на ошибки и запросом на повторную передачу в случае необходимости (на подобии протокола X10 но немного по другому)
4. Плавное управление симистором для управления освещением.
Это должен был быть выключатель встраиваемый вместо обычного бытового.
Последний раз редактировалось Flopix; 13.06.2012 в 13:38.
|
|
|
|
13.06.2012, 12:55
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Alex9797
|
Когда я писал программы для 1816ВЕ35/48, было вполне естественно, что память программ разбита на страницы по 256 байт, и условные переходы работают только внутри текущей страницы. Поэтому надо было самому отслеживать заполнение памяти, на границах страниц вручную ставить безусловные переходы, или пользоваться подпрограммами, а тело основной программы втиснуть в одну страницу, и из нее их вызывать.
|
Может быть там просто переход нельзя было сделать далее чем на +-128 адресов, так как команда условного перехода принимает в качестве операнда 1 байт?
|
|
|
|
13.06.2012, 13:05
|
|
Заблокирован
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Flopix
|
Так что 100 команд на эту программу вместе с инициализацией будет более чем достаточно,
|
Пример в студию!!!
Сообщение от Flopix
|
конечно если писать на асемблере.
|
К какая разница???
Напишите на ассемблере..
Последний раз редактировалось st__1; 13.06.2012 в 13:50.
|
|
|
|
13.06.2012, 13:26
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Flopix
|
Может быть там просто переход нельзя было сделать далее чем на +-128 адресов, так как команда условного перехода принимает в качестве операнда 1 байт?
|
Не "может", а так и есть. Поэтому, если сильно надо было перейти по условию на другую страницу, условный переход приходилось сначала адресовать на команду с безусловным переходом, расположенную на этой же странице.
Это воспринималось нормально, как необходимое зло, с которым просто приходится считаться.
|
|
|
|
13.06.2012, 13:36
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
st__1, очепятался, 1500 слов , исправил.
Последний раз редактировалось Flopix; 13.06.2012 в 13:38.
|
|
|
|
13.06.2012, 13:42
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Flopix
|
Чтобы изменить состояние порта микроконтроллера в PIC достаточно 1 команды.
Для реализации софт задержки достаточно соорудить пару циклов в цикле ну это до 20 команд. Так что 100 команд на эту программу вместе с инициализацией будет более чем достаточно, конечно если писать на асемблере.
|
Напоминает легенду о вознаграждении для изобретателя шахмат. За первую клетку - одно пшеничное зерно, за вторую - два, за третью - четыре... Какой пустячок! Мешок зерна, не более!
Когда перейти от слов к делу, то быстро окажется, что мигать двумя десятками светодиодов - не так уж просто. Особенно если уточнить, что именно означает понятие "мигать". Это тупо включить, пауза, выключить, пауза? Так и для этого сотни слов маловато будет. Кроме того, быстро окажется, что миганию каждого светодиода очень мешают остальные 19.
Ладно, попробуйте...
|
|
|
|
13.06.2012, 13:43
|
|
Гражданин KAZUS.RU
Регистрация: 31.12.2010
Сообщений: 837
Сказал спасибо: 371
Сказали Спасибо 153 раз(а) в 113 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Alex9797, всмысле мешают? Они что каждый мигают не синхронно?
|
|
|
|
13.06.2012, 13:55
|
|
Почётный гражданин KAZUS.RU
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
|
Re: Как в PIC 16f877 переключать страницы памяти?
Сообщение от Flopix
|
Они что каждый мигают не синхронно?
|
Конечно! Иначе о чем бы спорить? Если они мигают синхронно, то достаточно одного порта, а светодиодов можно хоть сотню параллельно навесить. Хоть тысячу. Хоть сто тысяч.
Конечно же, я под словами "мигать двумя десятками светодиодов" подразумеваю, что каждый из них мигает независимо от других, со своими длительностями свечения и паузы.
А как вы поняли эту задачу?
|
|
|
|
Ваши права в разделе
|
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения
HTML код Выкл.
|
|
|
Часовой пояс GMT +4, время: 05:00.
|
|