En mis 16F628A, quiero iterar una secuencia de valores predefinida. ¿Cómo hago esto?
En C, haría algo como esto:
char vals = {22, 10, 34, 16};
char id = 0;
puerto = vals [id]; id ++
Es el 'vals [id]' que no he descubierto.
En mis 16F628A, quiero iterar una secuencia de valores predefinida. ¿Cómo hago esto?
En C, haría algo como esto:
char vals = {22, 10, 34, 16};
char id = 0;
puerto = vals [id]; id ++
Es el 'vals [id]' que no he descubierto.
No hay instrucciones de acceso indirecto a la memoria en las fotografías de rango medio, en lugar de eso, coloca la dirección de la ubicación de la memoria a la que deseas acceder en el registro FSR. Y luego se puede acceder al valor en el registro INDF.
Consulte la sección 4.4 de la hoja de datos de su chip. enlace
Si quieres que un PIC16F628A haga algo como
char vals = {22, 10, 34, 16};
int main(void){
char id = 0;
while(1){
PORTB = vals[id];
id++;
id = id & 3;
};
}
una opción es compilar su código C con un compilador de C. (Al compilar para dichos chips, el compilador utilizará los registros FSR e INDF exactamente como lo explicó John Burton). Tengo entendido que SDCC es el único compilador de C de código abierto que admite los chips PICmicro PIC16F628A y otros "14 bits".
¡La dirección directa y la indexación local son poderosas! POD ASM de la versión 0.54 ofrece un manejo invisible e indirecto para sus estructuras de hoja y datos. El truco, entonces, es determinar siempre las direcciones indirectas. Esto reduce la confusión y dificulta la depuración de código adicional de insert (), insertWord (), etc. A diferencia de la Dirección directa y la indexación local, POD ASM le permite insertar todo una vez en la memoria, por lo que no tiene que adivinar en cada vuelo. Igual de importante,... Lees verder