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

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

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

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

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

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

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

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

вот кусок главный
Вложения:
Тип файла: txt main.txt (14.0 Кб, 92 просмотров)
Реклама:
miwutka вне форума  
Непрочитано 12.06.2012, 14:11  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

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

там простое мигание светодиодами. Та переменная определена в другом файле где только дефайны прописаны со фьюзами и т.д.ююю
miwutka вне форума  
Непрочитано 12.06.2012, 14:19  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Ну тогда выложите и main.h, но в любом случае программа слишком неоптимальная по размеру программной памяти.
nonamedov вне форума  
Непрочитано 12.06.2012, 14:48  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

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

Яркий пример попытки сделать "универсальный" алгоритм. Типичная ощибка начинающих. Сформируйте массив значений и выводите их через порты в цикле с задержкой. Действительно, непрерывный участок кода не может быть больше размера одной страницы памяти программ. Поэтому и ругается компилятор.
nonamedov, из-за желания обеспечить возможность произвольного назначения портов и возник сей "монстр"
__________________
misterdi<@>i.ua

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

Сообщение от nonamedov Посмотреть сообщение
У Вас в программе DELAY_MS вызвана порядка 100 раз(!),
Да хоть 2000 раз...
Вопрос - влезет или не влезет...
Пока не вижу причин, чтобы прога не влезла...
Сообщение от nonamedov Посмотреть сообщение
для надежности выложите и hex файл.
Не прикалывайтесь... если компилер сильно ругается... откуда HEX ???
st__1 вне форума  
Непрочитано 12.06.2012, 15:11  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

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

Надо бы посмотреть как осуществляется реализация SWITCH оператор в этом компиляторе, возможно он не может адресовать из одной в другую страницу.
nonamedov вне форума  
Непрочитано 12.06.2012, 15:47  
Bumbarra
Вид на жительство
 
Регистрация: 16.09.2011
Сообщений: 343
Сказал спасибо: 10
Сказали Спасибо 171 раз(а) в 104 сообщении(ях)
Bumbarra на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Цитата:
Действительно, непрерывный участок кода не может быть больше размера одной страницы памяти программ.
Да ну, бросьте Счетчик команд инкрементируется без проблем, если "код непрерывный". Сам сетчик команд 13-битный, младшие 8 бит содержатся в регистре PCL, а старшие - в PCLATH.
Тот код, который записавается в ячейки памяти программ контроллера, может управлять переходом именно в пределах 11 битного адреса памяти программ.. Старшие 2 бита содержатся с регистре-защелке PCLATH, из нее берется номер страницы, который должен быть записан перед командой перезода.
Всё это в даташите описано.

Последний раз редактировалось Bumbarra; 12.06.2012 в 16:33.
Bumbarra вне форума  
 

Закладки
Опции темы

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

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:54.


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