Estás seguro?? El anterior vale, ya que tienes un for(;
{} que equivale a un while(1){}, osea, que se repitiría siempre. Pero en el último no. Es más, lo he pasado al CCS para ver el código que crea en asm y no hay ningún bucle.
El código que has puesto antes era erroneo. Lo he hecho así:
Codigo:
#include <18f8720.h>
#byte TRISA=0x85
#byte PORTA=5
#bit CLK_920 = PORTA.3
void main (void)
{
TRISA = 0x00;
CLK_920 = 0;
CLK_920 = 1;
}
Y esto es lo que genera:
Codigo:
CCS PCH C Compiler, Version 3.187, 16465
Filename: C:WINDOWSEscritorioa.LST
ROM used: 28 (0%)
Largest free fragment is 0
RAM used: 5 (0%) at main() level
5 (0%) worst case
Stack: 0 locations
*
0000: GOTO 0004
.................... #include <18f8720.h>
.................... //////// Standard Header file for the PIC18F8720 device ////////////////
.................... #device PIC18F8720
.................... #list
....................
....................
....................
.................... #byte TRISA=0x85
.................... #byte PORTA=5
.................... #bit CLK_920 = PORTA.3
.................... void main (void)
.................... {
0004: CLRF FF8
0006: BCF FD0.7
0008: CLRF FEA
000A: CLRF FE9
000C: MOVLW 0F
000E: MOVWF FC1
0010: MOVLW 07
0012: MOVWF FB4
....................
.................... TRISA = 0x00;
0014: CLRF x85
....................
.................... CLK_920 = 0;
0016: BCF 05.3
....................
.................... CLK_920 = 1;
0018: BSF 05.3
....................
.................... }
....................
001A: SLEEP
Saludos