Página 1 de 1

Bancos Memória RAM PIC16F877A (Paginação)

MensagemEnviado: 17 Fev 2009 12:34
por Mersin
Olá pessoal,

Estou trabalhando com o MPLAB 8.10 e CCS 3.02 e meu programa está utilizando cerca de 113 bytes com variáveis na RAM, porém, ao compilar o mesmo, o CCS me diz que já está ocupando 97% da mesma.

Só não entendo como está enchendo se o 877A tem 368Bytes de RAM?

MensagemEnviado: 17 Fev 2009 13:17
por otavio luiz
Todo compilador reserva parte da memória ram para algumas funções especificas, se voce der uma olhada o help do compilador vai ver que ele esta escrito quanto é o maximo de memória ram disponivel para cada chip. Alias acho que só em assembler mesmo pra voce ter disponivel toda a ram.

MensagemEnviado: 17 Fev 2009 13:17
por ffcprog
Fácil, é CCS né!!
Ja está respondido!!

ffcprog

MensagemEnviado: 17 Fev 2009 13:25
por otavio luiz
Outra coisa é que a quantidade de bytes disponivel na ram depende do tipo de variável que voce utiliza, ela pode ser de 1byte, 2 bytes, 4 bytes e isto deve ser considerado e isso vale para todos os compiladores não somente CCS.

MensagemEnviado: 18 Fev 2009 08:10
por Mersin
É Otavio,

Eu já tava desconfiado que era por causa de todas as variáveis do compilador, o jeito é migrar para o 18F452 e aprender mesmo a trabalhar com o C18 da microchip.

Valeu pelas dicas!

Inté!

Assembler...

MensagemEnviado: 19 Fev 2009 15:33
por Vonnilmam
É por esse motivo entre outros tantos, que prefiro utilzar ainda o assembler, nele você tem controle da máquina incondicionalmente...

A conclusão que cheguei é que linguagem C é ideal para aplicação em MCUS fartos de memoria ram e de programa e quanto mais velozes melhor, ou seja para caras parrudos,

Em se tratando de MCUS simples de 8 bits, na minha opinião não vale a pena utilizar C, dependendo da aplicação é claro...

Sou suspeito para falar, devido a minha lealdade ao assembler, porém nada contra aos "CENIANOS"...

Valeu,

MensagemEnviado: 19 Fev 2009 16:07
por ffcprog
É por este motivo que eu.
ASM,,,,BASIC,,,,,PASCAL,,,,,C

E acima de tudo, seja qual for o compilador e linguagem..

Qualquer programador com minimo de experiência em UC, sabe muito bem quantos bytes determinada variavel consome.
byte char short = 1 byte
Word int = 2 bytes
longint, integer, real, dword, double, float, long, e afins = 4 bytes.

Não é tanto pela linguagem meu amigo, e sim pela base de conhecimento que a pessoa adquiriu com o curso ou com as pesquisas.

Ou seja nenhum nem o outro estão errados, seja asm, ou qualquer outra linguagem, depende muito do conhecimento que o programador adquiriu.

Abraços,

ffcprog