Página 1 de 1

MIKROC - A ME**A ....main function is not defined

MensagemEnviado: 12 Set 2009 20:31
por cristian
posso estar fazendo tudo errado mas este compilador nao me desce

esta me**a ta me deixando louco alguem pode me dizer onde esta o erro neste codigo pois foi copiado do exemplo do mikroc

pois da oo seguinte erro

""""main function is not defined """ queria saber q me**a é essa podem elogia este compilador mas nao vejo nada de mais muito complexo ou eu sou muito BURRO e so me dou bem com CCS esta é minha segunda tentativa de mudar para MIKROC

void main()
{
ANSEL = 0; // Set AN pins to Digital I/O
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;

OPTION_REG = 0x80; // Timer0 settings
digit = 0;
portd_index = 0;
shifter = 1;
TMR0 = 0;
INTCON = 0xA0; // Enable GIE, T0IE
PORTA = 0;
TRISA = 0; // Set PORTA as output
PORTD = 0;
TRISD = 0;

while (1)
{
switch (mode)
{ case :0 ;
delay_ms(20);

case :1 ;
}


}//while
}

me desculpe as me**as é que preciso terminar um codigo e pensei q este compilador me ajudaria

MensagemEnviado: 12 Set 2009 21:39
por proex
void main() ?

Creio que isso nao funciona nesse compilador.

Tente: int main(void)

MensagemEnviado: 12 Set 2009 21:42
por barboza
tenta

int main (void)
{
}

MensagemEnviado: 12 Set 2009 21:54
por proex
Eheheh, nao é nada disso.

Ta faltando o comando break em algum lugar ai. (e termine de construir a função switch)


.

MensagemEnviado: 12 Set 2009 21:56
por cristian
exemplo do mikro c ....este funciona

void main() {

ADCON1 |= 0x0F; // Configure AN pins as digital
CMCON |= 7; // Disable comparators

TRISA = 0; // set direction to be output
TRISB = 0; // set direction to be output
TRISC = 0; // set direction to be output
TRISD = 0; // set direction to be output
TRISE = 0; // set direction to be output
TRISF = 0; // set direction to be output
TRISG = 0; // set direction to be output
TRISH = 0; // set direction to be output
TRISJ = 0; // set direction to be output

do {
PORTA = 0x00; // Turn OFF LEDs on PORTA
PORTB = 0x00; // Turn OFF LEDs on PORTB
PORTC = 0x00; // Turn OFF LEDs on PORTC
PORTD = 0x00; // Turn OFF LEDs on PORTD
PORTE = 0x00; // Turn OFF LEDs on PORTE
PORTF = 0x00; // Turn OFF LEDs on PORTF
PORTG = 0x00; // Turn OFF LEDs on PORTG
PORTH = 0x00; // Turn OFF LEDs on PORTH
PORTJ = 0x00; // Turn OFF LEDs on PORTJ
Delay_ms(1000); // 1 second delay

PORTA = 0xFF; // Turn ON LEDs on PORTA
PORTB = 0xFF; // Turn ON LEDs on PORTB
PORTC = 0xFF; // Turn ON LEDs on PORTC
PORTD = 0xFF; // Turn ON LEDs on PORTD
PORTE = 0xFF; // Turn ON LEDs on PORTE
PORTF = 0xFF; // Turn ON LEDs on PORTF
PORTG = 0xFF; // Turn ON LEDs on PORTG
PORTH = 0xFF; // Turn ON LEDs on PORTH
PORTJ = 0xFF; // Turn ON LEDs on PORTJ
Delay_ms(1000); // 1 second delay
} while(1); // Endless loop
}

Re: MIKROC - A m**** ....main function is not defined

MensagemEnviado: 12 Set 2009 22:19
por Djalma Toledo Rodrigues
cristian escreveu:ANSEL = 0; // Set AN pins to Digital I/O
ANSELH = 0;

ANSEL?
.

MensagemEnviado: 12 Set 2009 22:29
por barboza
proex escreveu:Eheheh, nao é nada disso.

Ta faltando o comando break em algum lugar ai. (e termine de construir a função switch)


.


É realmente, não tinha lido o codigo, mas o seu switch esta sem break algum.

Tente retirando o switch ou consertando-o.

MensagemEnviado: 13 Set 2009 07:50
por cristian
TIREI TUDO

MensagemEnviado: 13 Set 2009 14:22
por Djalma Toledo Rodrigues
ANSEL?
Não seria ANSELL ?

MensagemEnviado: 13 Set 2009 14:41
por fabim
void main(void){
ANSEL = 0; // Set AN pins to Digital I/O
ANSELH = 0;
C1ON_bit = 0; // Disable comparators
C2ON_bit = 0;

OPTION_REG = 0x80; // Timer0 settings
digit = 0;
portd_index = 0;
shifter = 1;
TMR0 = 0;
INTCON = 0xA0; // Enable GIE, T0IE
PORTA = 0;
TRISA = 0; // Set PORTA as output
PORTD = 0;
TRISD = 0;

while (1) {


switch (mode) {
//case :0 ; << ????
//delay_ms(20);
//case :1 ;// <<<<comé ?

case 0:
delay_ms(20);
break;

case 1:
delay_ms(40);
break;

case 2:
delay_ms(60);
break;

case 3:
delay_ms(80);
break;

case 4:
delay_ms(100);
break;

default:
delay_ms(1000);
break;

} //end switch
}//end while
}//end main

mikroC´s versões antigas, todas as libys eram buscadas e compiladas durante o trabalho do montador e gerador hex.
MikroC PRO 2009 VXXX.
Do lado direito da tela, tem uma aba de biblioteca.
Quando se cria o novo projeto, as libys estão todas desmarcadas, é necessario marcar as bibliotecas que vai utilizar, caso contrario a IDE não busca a liby e fala que o comando é desconhecido etc.
1° ABA lateral direita, superior.."library mananger"

bom´s
switchs value

case: qualquer um!!
ehehehe

Abraços

GOOD LUCK

Fabim

MensagemEnviado: 13 Set 2009 15:20
por proex
O Fabim é experto, manja tudo de Mikroc esse menino, e ainda cobra barato, faz de tudo e tem uma motinho Scooter.

.

MensagemEnviado: 16 Set 2009 08:13
por cristian
obrigado a todos pela ajuda mas nao achei o problema pegeui um codigo q ja fucniona e editei

mesmo assim obrigado

MensagemEnviado: 16 Set 2009 08:25
por barboza
cristian escreveu:obrigado a todos pela ajuda mas nao achei o problema pegeui um codigo q ja fucniona e editei

mesmo assim obrigado


Outra coisa que percebi no seu código original além da falta dos break, é a construção dos cases.

Código: Selecionar todos
case : 0 ;


O certo é : após a constante.

Código: Selecionar todos
case 0 :



A declaração das variáveis não aparece no seu post, mas não acredito que seja este o problema.