Moderadores: andre_luis, 51, guest2003, Renie
geraldomelo escreveu:Então Fabim , testei isso tbm e nada ... caiu de 765 words para 750 , muito longe ainda dos 550 do ccs .. c lembrar de mais alguma dica , manda ai que eu testo aqui .... Pessoal , se tiverem algumas dicas tbm , fiquem à vontade .
abs
Geraldo
Avaliar um compilador só pelo tamanho de código ROM gerado não é o ideal e não serve como decisão para tudo
vtrx escreveu:Avaliar um compilador só pelo tamanho de código ROM gerado não é o ideal e não serve como decisão para tudo
Acho que o melhor compilador é aquele que fica em frente do monitor pressionando as teclas.
geraldomelo escreveu:já estava vendo mesmo esse livro pra comprar ...... bom , mas voltando ao mikroC , o problema eh que não estou falando em apenas algumas words a mais , mas de uma diferença muito grande .. um faz o serviço com 550 words , e o outro faz o mesmo serviço com 750 ?? eh muita coisa
abs
Geraldo
#include <pic.h>
unsigned char const num[10] = { 0b00111111, // número 0
0b00000110, // número 1
0b01011011, // número 2
0b01001111, // número 3
0b01100110, // número 4
0b01101101, // número 5
0b01111101, // número 6
0b00000111, // número 7
0b01111111, // número 8
0b01101111};
unsigned int valor1;
float f;
unsigned int unidade=0, dezena=0, centena=0, milhar=0;
void delay_ms(unsigned int dl) //crie a sua com + precisão.
{
while(dl--);
}
void escreve_display(void)
{
PORTB=num[unidade];
PORTA=2;
delay_ms(4);
PORTB=num[dezena];
PORTA=4;
delay_ms(4);
PORTB=num[centena];
PORTA=8;
delay_ms(4);
PORTB=num[milhar];
PORTA=16;
delay_ms(4);
}
/*
void separa_digitos(void)
{
unidade=valor1%10;
dezena=(valor1/10)%10;
centena=(valor1/100)%10;
milhar=(valor1/1000);
}
*/
unsigned int ADC_Read(unsigned char channel)
{
ADCON0 = (channel << 3) + 0x81; // enable ADC, fosc/32
delay_ms(20);
ADGO = 1;
while(ADGO)
continue; // wait for conversion complete
return ADRESH*256 + ADRESL;
}
void main() {
TRISA=1; // ra0 como entrada
TRISB=0; // todo portb como saida
PORTB=0; // iniciando porta todos em 0
PORTA=0; // iniciando portb
ADCON0=0b00000001; // liga AD do pic
ADCON1=0b00001110; // todas as entradas como digitais , menos ra0 .
delay_ms(100); // espera estabilizar o pic
while (1) {
valor1=ADC_Read(0)>>2;
//separa_digitos();
escreve_display();
f=valor1/1.12345;
}
}
Summary:
Program space used 16Fh ( 367) of 2000h words ( 4.5%)
Data space used 1Eh ( 30) of 170h bytes ( 8.2%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Configuration bits used 0h ( 0) of 1h word ( 0.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Loaded C:\prj\bench\bench.cof.
********** Build successful! **********
Summary:
Program space used 9Dh ( 157) of 2000h words ( 1.9%)
Data space used 14h ( 20) of 170h bytes ( 5.4%)
EEPROM space used 0h ( 0) of 100h bytes ( 0.0%)
Configuration bits used 0h ( 0) of 1h word ( 0.0%)
ID Location space used 0h ( 0) of 4h bytes ( 0.0%)
Loaded C:\prj\bench\bench.cof.
********** Build successful! **********
MOVLW .20
CALL SOMA_E_DIVIDE
MOVWF VALOR_CONTA_1
MOVLW .40
CALL SOMA_E_DIVIDE
MOVWF VALOR_CONTA_2
MOVLW .50
CALL SOMA_E_DIVIDE
MOVWF VALOR_CONTA_3
MOVLW .60
CALL SOMA_E_DIVIDE
MOVWF VALOR_CONTA_4
SOMA_E_DIVIDE:
ADDLW .10
MOVWF VAR_CONTA
RRF VAR_CONTA,W
RETURN
MOVLW .20
ADDLW .10
MOVWF VAR_CONTA
RRF VAR_CONTA,W
MOVWF VALOR_CONTA_1
MOVLW .40
ADDLW .10
MOVWF VAR_CONTA
RRF VAR_CONTA,W
MOVWF VALOR_CONTA_2
MOVLW .50
ADDLW .10
MOVWF VAR_CONTA
RRF VAR_CONTA,W
MOVWF VALOR_CONTA_3
MOVLW .60
ADDLW .10
MOVWF VAR_CONTA
RRF VAR_CONTA,W
MOVWF VALOR_CONTA_4
Não acho que o tamanho do codigo gerado depois de compilado seja tão importante assim. As vezes um codigo maior tem uma velocidade de execução maior.
:100000002030840032300A200A128A11DF2F0406C1
:100010008001840A0406031D072864000034820757
:100020003F3406345B344F3466346D347D340734EA
:040030007F346F3476
:100EFA00830130080319B103B003300A0319310A18
:100F0A00031908007D2F00308A0083120313260874
:100F1A000F208600023085000430B000B1010A12A9
:100F2A008A117D2700308A0022080F2086000430AB
:100F3A008500B000B1010A128A117D2700308A00AB
:100F4A0020080F208600083085000430B000B10167
:100F5A000A128A117D2700308A0024080F20860091
:100F6A00103085000430B000B1010A128A117D2FB9
:100F7A008301AD00AE000310AE0D0310AE0D0310D9
:100F8A002E0D813E9F001430B000B1017D271F1540
:100F9A001F19CD2F1E08AF00AE0183161E08FE00D2
:100FAA00FF01031383122E08FE070318FF0A2F08F6
:100FBA00FF07080001308316031385008601831298
:100FCA00860185019F000E3083169F0064308312CC
:100FDA00B000B1017D270030BD270310FF0CFE0CC5
:100FEA000310FF0CFE0C7E08A8007F08A9008827C2
:060FFA000A128A11F02F1B
:00000001FF
Usuários navegando neste fórum: Nenhum usuário registrado e 1 visitante