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

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

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

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

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

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

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

 
Опции темы
Непрочитано 13.06.2012, 20:39  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

miwutka,


Скомпилируйте хотя бы кусок вашего бреда для начала .
Может до вас дойдет ...

Код:
#include ‹pic.h› 
#include ‹htc.h› // Required to interface with delay routines
#include "delay.h"
#ifndef _XTAL_FREQ
 // Unless already defined assume 4MHz system frequency
 // This definition is required to calibrate __delay_us() and __delay_ms()
 #define _XTAL_FREQ 8000000
#endif

__CONFIG(0x03FFA);



void main(void)
{
	T0IE=0;
	T0IF=0;
	GIE=0;
	T0CS=0;
	PSA=0;
	PS2=0;PS1=0;PS0=0;
	INTE=0;
	INTEDG=0;
	INTF=0;
	
	CMCON=0;
	TRISA=0;
	PORTA=0;	
	TRISB=0b00000001;
	PORTB=0;
	TRISC=0;
	PORTC=0;
	TRISD=0;
	PORTD=0;
	TRISE=0;
	PORTE=0;
    
    
	while(1==1)
	{   
	          
    PORTB=255;
    DelayMs(100);
    PORTA=122;
    PORTC=23;
    PORTD=233;
    PORTE=111;                               
    
        PORTB=255;
    PORTA=122;
    PORTC=23;
    PORTD=233;
    PORTE=111;
 
	};	
}
Реклама:
__________________
Осторожно , злой кот
dosikus вне форума  
Непрочитано 13.06.2012, 21:19  
nonamedov
Почётный гражданин KAZUS.RU
 
Регистрация: 06.06.2008
Сообщений: 1,530
Сказал спасибо: 78
Сказали Спасибо 427 раз(а) в 365 сообщении(ях)
nonamedov на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от Popeye Посмотреть сообщение
Много яснее если разделить процесс на мелкие части. Примерно для скана кнопок, скана дисплея, снятия показаний АЦП и так далее.
Кажеться Вы правы, программы не должны быть больше одного сегмента, тут надо действовать по принципу, разделяй и властвуй, вот выдержка из help-a
Цитата:
Out of ROM, A segment or the program is too large

A function and all of the INLINE functions it calls must fit into one segment (a hardware code page). For example, on the PIC16 chip a code page is 512 instructions. If a program has only one function and that function is 600 instructions long, you will get this error even though the chip has plenty of ROM left. The function needs to be split into at least two smaller functions. Even after this is done, this error may occur since the new function may be only called once and the linker might automatically INLINE it. This is easily determined by reviewing the call tree. If this error is caused by too many functions being automatically INLINED by the linker, simply add a #SEPARATE before a function to force the function to be SEPARATE. Separate functions can be allocated on any page that has room. The best way to understand the cause of this error is to review the call tree.
nonamedov вне форума  
Непрочитано 13.06.2012, 21:42  
st__1
Заблокирован
 
Регистрация: 31.12.2011
Сообщений: 726
Сказал спасибо: 32
Сказали Спасибо 223 раз(а) в 162 сообщении(ях)
st__1 на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от miwutka Посмотреть сообщение
ВОТ КОПИРНУЛ ПАРУ СТОРОК ЧТОБ БОЛЬШЕ 2048 БЫЛО И ВЫДАЛО ВСЁ ТОЖЕ... чТО МОЖЕТ БЫТЬ?
Читайте...
Цитата:
Psects containing code can be reduced by using all the compiler’s optimizations, or restructuring
the program. If a code psect must be split into two or more small psects, this requires splitting a
function into two or more smaller functions (which may call each other). These functions may need
to be placed in new modules.

Psects containing data may be reduced when invoking the compiler optimizations, but the effect
is less dramatic. The program may need to be rewritten so that it needs less variables.
Но никак... ручками не переключать...

Последний раз редактировалось st__1; 13.06.2012 в 21:45.
st__1 вне форума  
Непрочитано 13.06.2012, 21:44  
Alex9797
Почётный гражданин KAZUS.RU
 
Аватар для Alex9797
 
Регистрация: 20.08.2010
Адрес: Днепр
Сообщений: 8,565
Сказал спасибо: 5,041
Сказали Спасибо 10,615 раз(а) в 3,604 сообщении(ях)
Alex9797 на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от miwutka Посмотреть сообщение
Значит если делей 10 мс то внесен delay.c таинственным образом?? (так как происходит норм компиля), а если 100 - то он тайно исчезает?
Попробуй не так резко увеличивать параметр, с 10 не сразу до 100, а попробовать промежуточные значения. Например, 20, 30, 40.... 90. Чтобы определить, где граница возможного. Может это даст полезную инфу для разгадки.
Alex9797 вне форума  
Непрочитано 13.06.2012, 22:00  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от Popeye Посмотреть сообщение
Я разумеется грешник, пишу на МикроЕ Бейсике. Заметил, там процедура-подпрограмма-функция для ПИК до среднего семейства (тобишь ПИК16) если более страницы ФЛАШ (2 кслов) не компилируется. Сообщение : не хватает программной памяти. Даже если остальные 3 страницы, тоесть 6 кслов свободны. Недостаток компилятора однозначно. Да и тык в нос. Много яснее если разделить процесс на мелкие части. Примерно для скана кнопок, скана дисплея, снятия показаний АЦП и так далее.
Делал процедуру select case глубиной 32 элемента, но там вызывались подпрограммы. Прошло както.
третий день програмлю пики. Вообще АВРки юзаю. Там как хочешь пишешь и всё замечательно. Лижбы логика программы была нормальной а тут капец...
miwutka вне форума  
Непрочитано 13.06.2012, 22:04  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

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

Сообщение от Alex9797 Посмотреть сообщение
не так резко увеличивать параметр, с 10 не сразу до 100
Да нет там никаких проблем...
Нажмите на изображение для увеличения
Название: PIC16F877_PROBE.PNG
Просмотров: 99
Размер:	17.5 Кб
ID:	35811
st__1 вне форума  
Непрочитано 13.06.2012, 22:09  
miwutka
Почётный гражданин KAZUS.RU
 
Регистрация: 05.07.2009
Адрес: Запорожье
Сообщений: 1,531
Сказал спасибо: 309
Сказали Спасибо 53 раз(а) в 48 сообщении(ях)
miwutka на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

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

Сообщение от st__1 Посмотреть сообщение
Да нет там никаких проблем...
Вложение 35811
что ж блин у меня ниче не идет...? Что за версия МПЛАБ у вас? У меня 8.20 и хайтес про 9.70. явно мне с пиками пока противопоказано ... ))
miwutka вне форума  
Непрочитано 13.06.2012, 22:11  
dosikus
Гуру портала
 
Аватар для dosikus
 
Регистрация: 20.11.2004
Сообщений: 10,015
Сказал спасибо: 936
Сказали Спасибо 2,269 раз(а) в 1,563 сообщении(ях)
dosikus на пути к лучшему
По умолчанию Re: Как в PIC 16f877 переключать страницы памяти?

Сообщение от miwutka Посмотреть сообщение
Вы посты выше почитайте для начала, чтобы в тему нашу войти...
Не только прочитано но и скомпилировано ...
Если вы так и под avr программы пишете , это точно
Цитата:
капец
.
Вам уже и цитаты из хелпа приводят с решением вашей высосанной из пальца проблемы .
__________________
Осторожно , злой кот
dosikus вне форума  
 

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

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

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


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