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

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

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

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

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

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

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

 
Опции темы
Непрочитано 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
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
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
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
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.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

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

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

конечно хорошо что теория развивается тут, но вот хочется узнать всётаки сам он делает переходы, или вручную надо, или оптимизация включена и не компилит?.... main.h кину чуть позже...
miwutka вне форума  
Непрочитано 12.06.2012, 17:39  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 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.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 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, время: 04:57.


Powered by vBulletin® Version 3.8.4
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot