Página 1 de 1

Duvida num fragmento de código

MensagemEnviado: 11 Jul 2008 17:01
por amboni
Boa tarde,
estava dando uma olhada num codigo que encontrei por ai de bobera, ai me surgiu uma duvida pra que funciona tal comando....
estou programando em CCS....
//------------------------------------------------
// funçao principal
void main(void){


init(); //inicializaçao dos ports e perifericos do PIC
set_time();

for(;;) <<<<<<< O QUE ÉH ISSO!?!?
{
delay_ms(1000);
read_time();
}
}
//---------------------------------------------------------
eu bem contente esperava por um "while(true)".... ou aquilo ali é a mesma coisa?!!?

outra duvida seria a seguinte

// prototipos das funçoes
void init(void);
void set_time(void);

pq foi colocado um (void) entre aspas?!

Estou iniciando agora em "C",
valeu,

Amboni

Re: Duvida num fragmento de código

MensagemEnviado: 11 Jul 2008 17:04
por amboni
apareceu um smile no lugar do ponto e virgula...

for ( 2 ponto e virgula);
//------------------------------------------------
// funçao principal
void main(void){


init(); //inicializaçao dos ports e perifericos do PIC
set_time();

for( ;; ) <<<<<<< O QUE ÉH ISSO!?!?
{
delay_ms(1000);
read_time();
}
}
//---------------------------------------------------------
eu bem contente esperava por um "while(true)".... ou aquilo ali é a mesma coisa?!!?

outra duvida seria a seguinte

// prototipos das funçoes
void init(void);
void set_time(void);

pq foi colocado um (void) entre aspas?!

Estou iniciando agora em "C",
valeu,

Amboni[/quote]

MensagemEnviado: 11 Jul 2008 17:13
por guest2003
Ola Amboni,

Código: Selecionar todos
while(1) e for(;;)


são a mesma coisa, porém no caso do while(1) seu compilador pode gerar um warning avisando que você esta fazendo um loop infinito, para chamar sua atenção se isso não é um erro. Já no caso do for ele foi feito para isso mesmo desta forma... para gerar um loop infinito "por querer" e sem gerar warning...

Eu gosto de trabalhar com warning em niveis bem altos, ajudam muito esses avisos dos compiladores...

void = vazio em Ingles...

Eh apenas para ficar mais claro que a funcao nao recebe nenhum parametro...

[]'s

MensagemEnviado: 12 Jul 2008 05:46
por Maurício
Quando forem escrever códigos de exemplo, para exibição aqui no ASM51, usem o botão CODE, no alto da janela de edição. Digite o código e depois pressione CODE de novo para finalizar o processo. Isso evita aparecerem winks no lugar de codificação mesmo.

[]'s

MensagemEnviado: 12 Jul 2008 10:42
por guest2003
Ai o fragmento de codigo aparece destacado igual aconteceu com o que eu fiz...

Duvida num fragmento de codigo

MensagemEnviado: 23 Jul 2008 10:39
por amboni
Bom dia Rapaziada....

é o seguinte, estou usando uma biblioteca do CCS para controlar o LCD e a mesma esta usando o portb.... menos o RB3, mais entao eu preciso do RB0 por causa de uma interrupção externa.... ai fui indu... indo e cheguei no codigo da biblioteca do LCD... que esta usando o RB0 para acionar o enable... ai entao troquei ele pelo RB3... (para sobrar o RB0 e logico...)
mais entao... nao funfou e não estou entendendo o tal do Struct... pq quero que sobre o RB0...


Código: Selecionar todos
[b]struct lcd_pin_map {       // This structure is overlayed
           BOOLEAN unused;          // low order up.  ENABLE will  // RB0
           BOOLEAN rs;               // access to the LCD pins.        // RB1
           BOOLEAN rw;               // The bits are allocated from  // RB2
           BOOLEAN enable;           // on to an I/O port to gain   // RB3
           int     data : 4;         // be pin B0.
        } lcd;[/b]

#if defined use_portb_lcd
   //#locate lcd = getenv("sfr:PORTB")    // This puts the entire structure over the port
   #ifdef __pch__
    #locate lcd = 0xf81
   #else
    #locate lcd = 6
   #endif
   #define set_tris_lcd(x) set_tris_b(x)

#else
   //#locate lcd = getenv("sfr:PORTD")    // This puts the entire structure over the port
   #ifdef __pch__
    #locate lcd = 0xf83
   #else
    #locate lcd = 8
   #endif
   #define set_tris_lcd(x) set_tris_d(x)
#endif

#ifndef lcd_type
#define lcd_type 2           // 0=5x7, 1=5x10, 2=2 lines
#endif

#define lcd_line_two 0x40    // LCD RAM address for the second line


BYTE const LCD_INIT_STRING[4] = {0x20 | (lcd_type << 2), 0xc, 1, 6};
                             // These bytes need to be sent to the LCD
                             // to start it up.


                             // The following are used for setting
                             // the I/O port direction register.

[b]struct lcd_pin_map const LCD_WRITE = {0,0,0,0,0}; [/b]// For write mode all pins are out
struct lcd_pin_map const LCD_READ = {0,0,0,0,15}; // For read mode data pins are in




()´s

Amboni