const
Data is read-only. Depending on compiler configuration, this qualifier may just make the data read-only -AND/OR- it may place the data into program memory to save space.
El define es un macro y es puramente del compilador, no guarda ninguna dato en la rom :?
#include "16f84a.h"
const int8 temp[] = {0xA0, 3,5,6,7,8,1,1,1};
void main()
{
int8 prueba[9];
int8 i;
for(i=0; i<9; ++i)
{
prueba=temp[i];
}
}0000: MOVLW 00
0001: MOVWF 0A
0002: GOTO 011
0003: NOP
.................... #include "16f84a.h"
.................... //////// Standard Header file for the PIC16F84A device ////////////////
.................... #device PIC16F84A
.................... #list
....................
.................... const int8 temp[] = {0xA0, 3,5,6,7,8,1,1,1};
....................
....................
.................... void main()
.................... {
0011: CLRF 04
0012: MOVLW 1F
0013: ANDWF 03,F
.................... int8 prueba[9];
.................... int8 i;
....................
.................... for(i=0; i<9; ++i)
0014: CLRF 1B
0015: MOVF 1B,W
0016: SUBLW 08
0017: BTFSS 03.0
0018: GOTO 01F
.................... {
.................... prueba=temp[i];
0019: MOVF 1B,W
001A: CALL 004
001B: MOVWF 0D
001C: MOVWF 12
.................... }
001D: INCF 1B,F
001E: GOTO 015
.................... }
001F: SLEEP 0x0000 : 0x3000 movlw 0x00
0x0001 : 0x008A movwf 0x0A
0x0002 : 0x2811 goto 0x11
0x0003 : 0x0000 nop
0x0004 : 0x100A bcf 0x0A , 0
0x0005 : 0x108A bcf 0x0A , 1
0x0006 : 0x110A bcf 0x0A , 2
0x0007 : 0x0782 addwf 0x02 , F
0x0008 : 0x34A0 retlw 0xA0 ; .
0x0009 : 0x3403 retlw 0x03 ; .
0x000A : 0x3405 retlw 0x05 ; .
0x000B : 0x3406 retlw 0x06 ; .
0x000C : 0x3407 retlw 0x07 ; .
0x000D : 0x3408 retlw 0x08 ; .
0x000E : 0x3401 retlw 0x01 ; .
0x000F : 0x3401 retlw 0x01 ; .
0x0010 : 0x3401 retlw 0x01 ; .
0x0011 : 0x0184 clrf 0x04
0x0012 : 0x301F movlw 0x1F
0x0013 : 0x0583 andwf 0x03 , F
0x0014 : 0x019B clrf 0x1B
0x0015 : 0x081B movf 0x1B , W
0x0016 : 0x3C08 sublw 0x08
0x0017 : 0x1C03 btfss 0x03 , 0
0x0018 : 0x281F goto 0x1F
0x0019 : 0x081B movf 0x1B , W
0x001A : 0x2004 call 0x04
0x001B : 0x008D movwf 0x0D
0x001C : 0x0092 movwf 0x12
0x001D : 0x0A9B incf 0x1B , F
0x001E : 0x2815 goto 0x15
0x001F : 0x0063 sleep
El define es un macro y es puramente del compilador, no guarda ninguna dato en la rom
movlw d'37' movwf Var
Reemplaza el texto Temp por el valor definido.
El define es un macro y es puramente del compilador, no guarda ninguna dato en la rom :?
Claro, es puramente del compilador, pero enfocándose en el ejemplo de Diego con variables sí ocupa rom de programa (como tu ejemplo Suky). En otros ejemplos como los de Cryn pues no se ocupa rom.
mmm... Entiendo! Pero hay que aclarar que son iguales solo para el ejemplo puntual que presenta Diego, para no confundir ;-) Porque son conceptos distintos.
Saludos!
#define puntoycoma ;
...
int i puntoycoma
i = i + 4 puntoycoma