IRP bit must be set manually for ...o que e isso

Software e Hardware para uC PIC

Moderadores: andre_luis, 51, guest2003, Renie

IRP bit must be set manually for ...o que e isso

Mensagempor cristian » 15 Set 2009 23:10

o que é isso ???
apareceu este warning no compilador Mikroc pro pic

e esta char time[10] nao funciona



IRP bit must be set manually for indirect access to 'time' variable
Editado pela última vez por cristian em 16 Set 2009 20:46, em um total de 2 vezes.
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor tcpipchip » 16 Set 2009 01:41

time nao seria uma palavra reservada ?
Avatar do usuário
tcpipchip
Dword
 
Mensagens: 6560
Registrado em: 11 Out 2006 22:32
Localização: TCPIPCHIPizinho!

Mensagempor cristian » 16 Set 2009 06:39

vc fala reservada ao compilador ???

eu mudei aqui e deu a mesma coisa coloquei char ttime[10]


ttime[0] = BCD2UpperCh(hour);
ttime[1] = BCD2LowerCh(hour);
ttime[2] = ':';
ttime[3] = BCD2UpperCh(minute);
ttime[4] = BCD2LowerCh(minute);
ttime[5] = ':';
ttime[6] = BCD2UpperCh(sec);
ttime[7] = BCD2LowerCh(sec);
ttime[8] = ' ';
ttime[9] = '\0';

ler_rtc();//pega data e hora
uart1_write_text(ttime);
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 16 Set 2009 09:21

se eu na outilizar esta linha

o erro sai

uart1_write_text(ttime);
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor Sergio38br » 16 Set 2009 12:16

Como vc declarou o time ou tttime??

[ ]'s
Sergio
Avatar do usuário
Sergio38br
Word
 
Mensagens: 759
Registrado em: 22 Nov 2007 13:39
Localização: São Paulo - SP

Mensagempor cristian » 16 Set 2009 13:32

declaraçao de variaveis

char txt[12];
char ddate[11];
char ttime[10];


leitura
unsigned char ler_rtc()
{
sec=read_ds1307(0); // read second
minute=read_ds1307(1); // read minute
hour=read_ds1307(2); // read hour
day=read_ds1307(3); // read day
date=read_ds1307(4); // read date
month=read_ds1307(5); // read month
year=read_ds1307(6); // read year
ttime[0] = BCD2UpperCh(hour);
ttime[1] = BCD2LowerCh(hour);
ttime[2] = ':';
ttime[3] = BCD2UpperCh(minute);
ttime[4] = BCD2LowerCh(minute);
ttime[5] = ':';
ttime[6] = BCD2UpperCh(sec);
ttime[7] = BCD2LowerCh(sec);
ttime[8] = ' ';
ttime[9] = '\0';

ler_rtc();//pega data e hora
uart1_write_text(ttime);
uart1_write_text(ddate);
salva_ticket();
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 16 Set 2009 20:01

RESOLVIDO

nao sei a explicação mas nesta linha com aspas simples dava este erro

Implicit conversion of int to ptr e este

IRP bit must be set manually for indirect access to 'txt'

uart1_write_text(' ');

ao mudar para uart1_write_text(" ");

resolvido o problema
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 16 Set 2009 20:48

VOLTOU

se eu adicionar uart1_write_text("memoria apagada");

qualquer comando com uart1_write_text ele aparecce de novo

sera q ninguem passou por isso
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor cristian » 16 Set 2009 22:44

nao dar certo vou voltar pro CCS ALGUEM PELO AMOR DE DEUS DESCOBRE O Q TEM ESTE CODIGO DE ERRADO QUALQUER COISA Q FOR ACRESCENTADO

UART1_WRITE_TEXT("NADA");

DA O ERRO 56 1511 IRP bit must be set manually for indirect access to 'txt' variable LedBlinking.c

//---------------------------------------------- INCLUDES

#include "24c256.c"
#include "ds1307.c"
#include "built_in.h"
// #include "memoria.c"

//--------------------------------------------- DEFINES
#define liga_led2 portc.f1=0;
#define desliga_led2 portc.f1=1;
#define liga_ponto portc.f1=0;
#define desliga_ponto portc.f1=1;
#define unilo(param,param2) ((short *)&param)[0] = ((short *)&param2)[0]
#define unihi(param,param2) ((short *)&param)[1] = ((short *)&param2)[0]
#define unihigh(param, param2) ((short *)&param)[2] = ((short *)&param2)[0]
#define unihiguest(param, param2) ((short *)&param)[3] = ((short *)&param2)[0]

//--------------------------------------------- PROTOTIPOS DAS ROTINAS
void grava_rtc(unsigned short m,unsigned short h,unsigned short d,unsigned short m,unsigned short y ) ;
unsigned short read_ds1307(unsigned short address);
void ler_memoria();
void salvar_memoria();
void salva_Total_credito();
void ler_total_credito();

//---------------------------------------------- VARIAVEIS
unsigned short sec;
unsigned short minute;
unsigned short hour;
unsigned short day;
unsigned short date;
unsigned short month;
unsigned short year;

char txt[12];
//char ddate[11];
//char time[10];

sbit botao_B at Rc1_bit;
sbit botao_g at RC0_BIT;
unsigned int pulsos,dados,receive,ind_rx,x;
unsigned short int var,var1byte, var2,credito;
char buf_rs232[15];
unsigned long int Total_credito;
//******************* memoria **************
unsigned int Tik_num,ind_memo,end_aux,total_tik;
unsigned short int dip,valor_tik,num_relat,valor_display,relat_num;

struct flag1{
print;
timer_pulso;
piscaled1;
piscaled2;
trat_pulso;
att_display ;
DISPLAY_pronto;
incr_contador;
timer_1seg;
imrime;
}a;
//--------------------------------------------- ROTINAS
unsigned char BCD2UpperCh(unsigned char bcd)
{

return ((bcd >> 4) + 0x30);

}

unsigned char BCD2LowerCh(unsigned char bcd)
{

return ((bcd & 0x0F) + 0x30);

}



//****************************** salva ticket **************
void salva_ticket()
{
ind_memo=SI2C_read(0)<<8;
ind_memo=ind_memo+SI2C_read(1);
SI2C_write(ind_memo,hi(Tik_num));ind_memo++;
SI2C_write(ind_memo,lo(Tik_num));ind_memo++;
SI2C_write(ind_memo,dip);ind_memo++;
SI2C_write(ind_memo,hour);ind_memo++;
SI2C_write(ind_memo,minute);ind_memo++;
SI2C_write(ind_memo,month);ind_memo++;
SI2C_write(ind_memo,date);ind_memo++;
SI2C_write(ind_memo,credito);ind_memo++;
SI2C_write(0,hi(ind_memo));
SI2C_write(1,lo(ind_memo));
}//salva ticket

void ler_dados_memo()
{
Tik_num=SI2C_read(end_aux)<<8;end_aux++;
Tik_num=tik_num+SI2C_read(end_aux);end_aux++;
dip=SI2C_read(end_aux);end_aux++;
hour=SI2C_read(end_aux);end_aux++;
minute=SI2C_read(end_aux);end_aux++;
month=SI2C_read(end_aux);end_aux++;
date=SI2C_read(end_aux);end_aux++;
credito=SI2C_read(end_aux);end_aux++;
}
void converte_dados()
{
wordtostr(Tik_num,txt);
uart1_write_text("Ticket ");
uart1_write_text(txt);
txt[0]=BCD2UpperCh(dip);
txt[1]=BCD2LowerCh(dip);
txt[2]='\0';
uart1_write_text("/");
uart1_write_text(txt);
uart1_write_text(" ");
txt[0]=BCD2UpperCh(date);
txt[1]=BCD2LowerCh(date);
txt[2]='/';
txt[3]=BCD2UpperCh(month);
txt[4]=BCD2LowerCh(month);
txt[5]=' ';
txt[6]=BCD2UpperCh(hour);
txt[7]=BCD2LowerCh(hour);
txt[8]=':';
txt[9]=BCD2UpperCh(minute);
txt[10]=BCD2LowerCh(minute);
uart1_write_text(txt);
uart1_write_text(" ");
wordtostr(credito,txt);
uart1_write_text(txt);
uart1_write_text(",00");
uart1_write(13);
}

void ler_rtc()
{
sec=read_ds1307(0); // read second
minute=read_ds1307(1); // read minute
hour=read_ds1307(2); // read hour
day=read_ds1307(3); // read day
date=read_ds1307(4); // read date
month=read_ds1307(5); // read month
year=read_ds1307(6); // read year

}
void converte_hora()
{
txt[0] = BCD2UpperCh(hour);
txt[1] = BCD2LowerCh(hour);
txt[2] = ':';
txt[3] = BCD2UpperCh(minute);
txt[4] = BCD2LowerCh(minute);
txt[5] = ':';
txt[6] = BCD2UpperCh(sec);
txt[7] = BCD2LowerCh(sec);
txt[8] = ' ';
txt[9] = '\0';
}
void converte_data()
{
txt[0] = BCD2UpperCh(date);
txt[1] = BCD2LowerCh(date);
txt[2] ='/';
txt[3] = BCD2UpperCh(month);
txt[4] = BCD2LowerCh(month);
txt[5] ='/';
txt[6] = '2';
txt[7] = '0';
txt[8] = BCD2UpperCh(year);
txt[9] = BCD2LowerCh(year);
txt[10] = '\0';
}
void Apaga_buf()
{
for(x=0;x<=14;x++)
{
buf_rs232[x]=0;
ind_rx=0;
}
}
//********************************** apaga memoria
void Apaga_memoria()
{
for(x=25;x<=ind_memo;x++)
{
SI2C_write(x,0);
}
SI2C_write(0,0);SI2C_write(1,25);//restaura indice
}

void ler_memoria()
{
// ler Num ticket impressos
var1byte=SI2C_read(3);unilo(Tik_num,var1byte);
var1byte=SI2C_read(2);unihi(Tik_num,var1byte);

var1byte=SI2C_read(7);unilo(Total_credito,var1byte);
var1byte=SI2C_read(6);unihi(Total_credito,var1byte);
var1byte=SI2C_read(5);unihigh(Total_credito,var1byte);
var1byte=SI2C_read(4);unihiguest(Total_credito,var1byte);

Relat_num=SI2C_read(0x08);
}

void salvar_memoria()
{
//--------------------------------salvar ticket
SI2C_write(2,hi(Tik_num));
SI2C_write(3,lo(Tik_num));
//--------------------------------salvar valor total creditos
SI2C_write(7,lo(Total_credito));
SI2C_write(6,hi(Total_credito));
SI2C_write(5,higher(Total_credito));
SI2C_write(4,highest(Total_credito));

SI2C_write(0x08,Relat_num);

SI2C_write(0x12,hour);
SI2C_write(0x13,minute);
SI2C_write(0x11,month);
SI2C_write(0x10,date);
}
void imprime()
{

Tik_num++;
wordtostr(Tik_num,txt);
uart1_write_text("Ticket ");
uart1_write_text(txt);
uart1_write(13);
wordtostr(credito,txt);
uart1_write_text("credito=");
txt[0]='R';txt[1]='$';
uart1_write_text(txt);
uart1_write_text(",00");
uart1_write(13);
ler_rtc();//pega data e hora
converte_hora();
uart1_write_text(txt);
converte_data();
uart1_write_text(txt);
uart1_write(13);
salva_ticket();
Total_credito=Total_credito+credito;//soma valor do ticket ao total
salvar_memoria();
}
//************************************ RELATORIO
void relatorio()
{
end_aux=25;//inicia end
ind_memo=SI2C_read(0)<<8;ind_memo=ind_memo+SI2C_read(1);
do
{
ler_dados_memo();
converte_dados();
}while(end_aux<ind_memo);//imrpime ticket ate ind memoria
//...-------------------------- continua relatorio
//total de tickets


wordtostr(Tik_num,txt);
uart1_write_text("Quant. Total de Ticket=");
uart1_write_text(txt);
uart1_write(13);
wordtostr(Total_credito,txt);
uart1_write_text("Valor Total de Ticket=");
uart1_write_text(txt);
uart1_write_text(",00");
uart1_write(13);
Relat_num++;
shorttostr(Relat_num,txt);
uart1_write_text("Quant. de Relatorios=");
uart1_write_text(txt);
uart1_write(13);

//ultimo relat


//quant zeramentos

//ultimo zeramento

//salva o ultimo relatorio

}

//-------------------------------------------- INTERRUPÇOES

//----------------------------------------------MAIN
void main(void) {

I2C1_Init(100000);
UART1_Init(9600);
TRISA=0B00000000;
trisc=0b10011000;
portc=0;
TRISB=0;
TRISD=0B11111111;
TRISE=0B00000000;
TRISB = 0;
PORTB = 0;
Delay_ms(100);
pulsos=0;
dip=0x10;
credito=100;
ler_memoria();
while(1)
{
//*********************************** relatorio *******************
if (UART1_Data_Ready() == 1) {
//****************************************** relatorio *******************
if(UART1_Read()=='1')
{
relatorio();
}
// imprime ticket
if(UART1_Read()=='2')
{
imprime();
}
//****************************************** apaga memoria *******************
if(UART1_Read()=='3')
{
ind_memo=SI2C_read(0)<<8;ind_memo=ind_memo+SI2C_read(1); //ler end atual
apaga_memoria();
uart1_write_text("memoria apagada");
}
//****************************************** inicializa sistema ****************
if(UART1_Read()=='4')
{
//**************** init indice
SI2C_write(0,0);SI2C_write(1,25);
//**************** init memoria
for(x=2;x<=0x18;x++){SI2C_write(x,0);}
uart1_write(13);


}//******************************************** fim receptor

/*uart1_write_text(time);
uart1_write(13);
uart1_write_text(ddate);*/
/*SI2C_Write(pulsos,sec);
sec=SI2C_Read(pulsos) ;
pulsos++;
SI2C_Write(pulsos,minute);
minute=SI2C_Read(pulsos) ;
pulsos++;
SI2C_Write(pulsos,hour);
hour=SI2C_Read(pulsos) ;
// Transform_Time(); // Format date and time
uart1_write_text(time);*/

// uart1_write(SI2C_Read(pulsos));
// uart1_write(13);

//pulsos++ ;
/*if (UART1_Data_Ready() == 1) {
buf_rs232[ind_rx]=UART1_Read();;
if((ind_rx++)>14)
{
Apaga_buf();
uart1_write_text("ERRO1");
uart1_write(13);
}
if(UART1_Read()==13)
{
LER_RTC();
salva_ticket();
Tik_num++ ;
if((buf_rs232[0]=='H')&& (buf_rs232[6]=='F'))
{
minute=buf_rs232[2]; // read minute
hour=buf_rs232[1]; // read hour
date=buf_rs232[4]; // read date
month=buf_rs232[3]; // read month
year=buf_rs232[5]; // read year
grava_rtc();
uart1_write_text("OK");
uart1_write(13);
}
if((buf_rs232[0]=='C')&& (buf_rs232[1]=='X'))
{
LER_RTC();
uart1_write_text(TIME);
uart1_write(13);
uart1_write_text(DATE);
}
Apaga_buf();
}
}*/
}//while

}

}
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor fabim » 16 Set 2009 23:04

o praga, os worning´s do mikroC.
Não de atenção pra eles, eles são simplesmente muitissimo malas...

Atente apenas aos ERRORS.

fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor cristian » 16 Set 2009 23:17

depois destes wornigs nao funciona fabim

imprime os caracteres errados
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor fabim » 17 Set 2009 08:10

cristian escreveu:depois destes wornigs nao funciona fabim

imprime os caracteres errados


olha, do lado de cima do main(){}
coloque
void interrupt(void){
_asm nop;
}
compila e testa novamente..
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor cristian » 17 Set 2009 08:58

ainda nao resolveu


deu no mesmo

sera q se eu usar a versao antiga do mikro c resolveria a 8.5

ta ai o link pra compilar

http://www.4shared.com/file/133314185/f ... ikroc.html

se vc inserrir outro comando como
uart1_write_text("memoria Apagada");

aparece e funciona errado o codigo
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba

Mensagempor fabim » 17 Set 2009 09:35

cris, compilei aqui no meu, e não deu nenhum worning nem error..
Compilei o que esta no forshared.
Tu ta usando o 1.65 ? se for ele ta todim bugado ele foi o beta..

Depois me chama no msn que eu te passo o pó do bom, pra você colocar no 2.5...

Fabim
Mano, ve só.
Sou responsável pelo que escrevo!!! E não pelo que você entende !!!
fabim
Dword
 
Mensagens: 5001
Registrado em: 16 Out 2006 10:18
Localização: aqui uái!!!?

Mensagempor cristian » 17 Set 2009 17:14

vc chegou a inserir algu
ma função a mais pra ver se dar o erro pois este q te passei nao tem o erro mas ao inserir algo a mais principalmente

write text

aparece


vc acha q isso é problema do compilador estou usando o MIKROC PRO 2.5
cristian
Word
 
Mensagens: 570
Registrado em: 03 Nov 2006 08:15
Localização: serrinha-ba


Voltar para PIC

Quem está online

Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante

cron

x