Реклама на сайте DatasheetsDatasheets

KAZUS.RUN - Электронный портал. Принципиальные схемы, Datasheets, Форум по электронике

Новости электроники Новости Литература, электронные книги Литература Документация, даташиты Документация Поиск даташитов (datasheets)Поиск PDF
  От производителей
Новости поставщиков
В мире электроники

  Сборник статей
Книги и журналы
FAQ по электронике

  Datasheets
Поиск SMD
Онлайн справочник

Принципиальные схемы Схемы Каталоги программ, сайтов Каталоги Общение, форум Общение Ваш аккаунтАккаунт
  Каталог схем
Схемы и проекты
Принципиальные схемы
  Программы
Каталог сайтов
Калькуляторы
  Форумы по электронике
Помощь проекту

Микроконтроллеры, АЦП, память и т.д Темы касающиеся микроконтроллеров разных производителей, памяти, АЦП/ЦАП, периферийных модулей...

 
Опции темы

Как в PIC 16f877 переключать страницы памяти?

Непрочитано 12.06.2012, 16:16  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от Bumbarra Посмотреть сообщение
Всё это в даташите описано.
На заборе тоже написано!!!
Однако... все компиляторы имеют свои баго-фичи...
Был бы здесь сейчас tester... он бы подсказал на возможность/невозможность такого варианта события в данном компилере...

Если ТС выложит main.h ... то, как вариант, попробовать собрать в другом компиляторе... и посмотреть, что получится...
Реклама:
st__1 вне форума  
Непрочитано 12.06.2012, 16:40  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Ну дак ясен перец то.
Если есть проблемы с переходом между страницами у компилятора, значит, надо самому, вручную указывать номер страницы в регистре-защелке PCLATH перед командой перехода. Аппаратно так и реализуется. Потому что разрядность памяти программ - 14 бит, старшие 3 бита определяют команду перехода (101 и 100), а биты от 0 до 10 - содержат именно адрес для перехода. Как раз в пределах одной страницы.
А вот в стек помещается все 13 бит адреса.
Bumbarra вне форума  
Непрочитано 12.06.2012, 16:49  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от Bumbarra Посмотреть сообщение
Если есть проблемы с переходом между страницами у компилятора, значит, надо самому, вручную указывать номер страницы в регистре-защелке PCLATH перед командой перехода.
Не... лучше уж читайте то, что на заборе написано...
st__1 вне форума  
Непрочитано 12.06.2012, 16:54  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 342
Сказал спасибо: 10
Сказали Спасибо 170 раз(а) в 103 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

А то я вижу, что ты уже прочел на заборе и советуешь потому
Bumbarra вне форума  
Непрочитано 12.06.2012, 17:01  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Раскрой свой бред во всей красе!!!
Вот не компилится у чела прожка... расскажи ему, куда пихать твои "чудо команды"... повесели нас...
st__1 вне форума  
Непрочитано 12.06.2012, 17:11  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Вполне возможно, что включена оптимизация программы на быстродействие и поэтому delay_ms(), заменяется вставками (inline).
nonamedov вне форума  
Непрочитано 12.06.2012, 17:22  
MisterDi
Почётный гражданин KAZUS.RUN
 
Аватар для MisterDi
 
Регистрация: 13.02.2008
Адрес: Днепр. Украина
Сообщений: 3,284
Сказал спасибо: 441
Сказали Спасибо 1,040 раз(а) в 701 сообщении(ях)
MisterDi на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Цитата:
младшие 8 бит содержатся в регистре PCL, а старшие - в PCLATH.
В PCLATH пишутся старшие биты счетчика адреса для команд условных переходов.
Прямая запись в PCLATH не приводит к непосредственному переходу на другую страницу. При прямой записи в PCL происходит переход в пределах 256-словной страницы.
Цитата:
Надо бы посмотреть как осуществляется реализация SWITCH оператор в этом компиляторе, возможно он не может адресовать из одной в другую страницу.
Весьма возможное объяснение.
__________________
misterdi<@>i.ua
MisterDi вне форума  
Непрочитано 12.06.2012, 17:35  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

конечно хорошо что теория развивается тут, но вот хочется узнать всётаки сам он делает переходы, или вручную надо, или оптимизация включена и не компилит?.... main.h кину чуть позже...
miwutka вне форума  
Непрочитано 12.06.2012, 17:39  
miwutka
Почётный гражданин KAZUS.RUN
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

main.h обещанный
Вложения:
Тип файла: txt main.txt (923 байт, 54 просмотров)
miwutka вне форума  
Непрочитано 12.06.2012, 17:40  
nonamedov
Почётный гражданин KAZUS.RUN
 
Регистрация: 06.06.2008
Сообщений: 1,519
Сказал спасибо: 76
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от miwutka Посмотреть сообщение
но вот хочется узнать всётаки сам он делает переходы,
А что тут непонятного, должен делать, но могуть быть ошибки самого компилятора, в определенной мере Вы и сами ответственны за эту ошибку.

Последний раз редактировалось nonamedov; 12.06.2012 в 17:56.
nonamedov вне форума  
 
Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
PIC 16F877/Лампочка с ключом vip7070 Proteus 26 08.04.2010 13:23
PIC 16F877 АЦП подлючение терморезистора. ataripc Микроконтроллеры, АЦП, память и т.д 0 13.11.2007 14:01
PIC 16F877 - встроенный генератор aks_ Микроконтроллеры, АЦП, память и т.д 1 18.02.2007 18:19
Программатор для PIC 16F877 Mouserx Микроконтроллеры, АЦП, память и т.д 2 12.12.2006 14:04
Страницы памяти chipic128 Микроконтроллеры, АЦП, память и т.д 12 12.11.2005 16:11


Часовой пояс GMT +4, время: 10:51.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.