por power » 23 Abr 2007 11:38
Olá Brasilma,
Obrigado pela sugestão. Com certeza eu preciso comprar um
livro para dar uma olhada quando tiver dúvidas, o problema eh que
nesse momento tô meio sem dinheiro para investir em conhecimento
e como precisso dessas informações para terminar um projeto
vou ter que contar com a ajuda do pessoal do forum.
Olá Mauricio,
Olhei no seu site este curso online e parece ser bastante
interessante, mas como falei pro Brasilma no momento vai ser
meio difícil por questões financeiras. Sei que conhecimento
custa dinheiro, mas tenho que me virar do jeito que dá, por enquanto.
só gostaria de fazer uma pergunta, eu fiz um teste com variveis
globais como descrevo abaixo e quanto vou compilar da a sequinte mensagem
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: VG_R1
MODULE: principal.obj (PRINCIPAL)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: VG_S1 MODULE: principal.obj (PRINCIPAL)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: VG_S1 MODULE: principal.obj (PRINCIPAL)
ADDRESS: 0019H
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: VG_R1 MODULE: principal.obj (PRINCIPAL)
ADDRESS: 001DH
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: VG_R1 MODULE: multiplicacao.obj (MULTIPLICACAO)
*** WARNING L1: UNRESOLVED EXTERNAL SYMBOL
SYMBOL: VG_S1 MODULE: multiplicacao.obj (MULTIPLICACAO)
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: VG_R1 MODULE: multiplicacao.obj (MULTIPLICACAO)
ADDRESS: 0028H
*** WARNING L2: REFERENCE MADE TO UNRESOLVED EXTERNAL
SYMBOL: VG_S1 MODULE: multiplicacao.obj (MULTIPLICACAO)
ADDRESS: 002BH Program Size: data=10.0 xdata=0 code=68 "TesHeader" - 0 Error(s), 8 Warning(s).
Esses WARNING são normais ou estou fazendo algo errado. Tem uma forma correta de fazer
para não aparecer esses WARNING.
- criei um modulo calculos.c
- um calculos.h
- um modulo multiplicacao.c
- um multiplicacao.h
- um modulo principal.c e
- um modulo variaveis.h onde esta as declarações das variaveis globais
No modulo calculos.c
//-------------------------
#include<REGX52.H>
unsigned char soma(unsigned a,unsigned b)
{
unsigned c=0;
c=(a+b);
return c;
}
No modulo calculos.h
//----------------------
#include<REGX52.H>
#ifndef _calculos_h
#define _calculos_h
extern unsigned char soma(unsigned a,unsigned b);
#endif
No modulo multiplicacao.c
//-------------------------
#include<REGX52.H>
#include"calculos.h"
#include"variaveis.h"
unsigned char multSimples(unsigned char a, unsigned char b)
{
unsigned char r;
r=soma(a,b);
r=(r+VG_r1); // VG_r1 eh uma variavel global
r=VG_s1; // VG_s1 eh outra variavel global
return(r*3);
}
No modulo multiplicacao.h
//--------------------------
#include<REGX52.H>
#ifndef _multiplicacao_h
#define _multiplicacao_h
extern unsigned char multSimples(unsigned char a, unsigned char b);
#endif
No modulo variaveis.h
//----------------------
#ifndef _variaveis_h1
#define _variaveis_h1
extern unsigned char VG_x1;
extern unsigned char VG_s1;
extern unsigned char VG_r1;
#endif
No modulo principal.c
//------------------------
#include<REGX52.H>
#include"calculos.h"
#include"multiplicacao.h"
#include"variaveis.h"
/*------------------------------------------------------*
* Main
*
*-------------------------------------------------------*/
void main(void)
{
unsigned char x,y,z;
x=1;
y=2;
z=soma(x,y);
z=multSimples(x,5);
VG_r1=(3+VG_s1);
z=z+VG_r1;
while(1);
}