buenas, pues no se donde dejar este tema, decido dejarlo aqui...
hoy he estado programando un cerrojo con calve en la memoria EEPROM y poder cambiar la clave (y que no se borre cuando se resetea el PIC)
les paso el codigo, para que vean como es, y si habria algun fallo..
esta en basic:
 
	
	
	
		
si hay que cambiar algo, diganmelo porfavor, gracias..
 
ahora presento seguidamente donde esta el problema:
 
	
	
	
		
utilizo el MicroCode Studio + PBP244, y me da el error con eso , y me dice lo siguiente:
 
"
warning line 46: bad token "."
error line 46: expected '['. (CERRADURA ELECTRONICA CON CLAVE EN MEMORIA EEPROM Y CAMBIO DE CLAVE.bas)
"
 
 
es la primera vez que hago una programacion asi, y por lo que he visto, en lo demas no da falla.. mañana acabare de hacer el diagrama y lo subo, y me dicen tambien si esta bien...
 
si necesitan mas informacion, solo diganmelo
saludos
				
			hoy he estado programando un cerrojo con calve en la memoria EEPROM y poder cambiar la clave (y que no se borre cuando se resetea el PIC)
les paso el codigo, para que vean como es, y si habria algun fallo..
esta en basic:
		PHP:
	
	'****************************************************************
'*  Name    : CERRADURA ELECTRONICA.BAS                         *
'*  Author  : Mulinee..46                                       *
'*  Notice  : Copyright (c) 2010 Mulinee..46                    *
'*          : All Rights Reserved                               *
'*  Date    : 27/07/2010                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
cmcon = 7                       ;cambiar a modo digital todo el puerto A
NUMERO VAR BYTE                 ;variable numero para almacenar la tecla pulsada
R VAR BYTE                      ;variable r para hacer repeticiones
BIP VAR PORTA.0                 ;el portA.0 Bip (conectar chicharra activa)
LEDVERDE VAR PORTA.1            ;el portA.1 se llamara LEDVERDE
LEDROJO VAR PORTA.3             ;el portA.3 se llamara LEDROJO
LEDAMARILLO VAR PORTA.4         ;el portA.4 se llamara LEDAMARILLO
LEDBLOQUEADO var PORTA.5        ;el portA.5 se llamara LEDBLOQUEADO
DOOR var PORTA.2                ;el portA.2 conectar rele para la cerradura
A var PORTB.0                   ;nombres para los pines de las filas
B VAR PORTB.1
C VAR PORTB.2
D VAR PORTB.3
UNO VAR PORTB.4                 ;nombres para los pines de las columnas
DOS VAR PORTB.5
TRES VAR PORTB.6
CUATRO VAR PORTB.7
SETPRIME VAR BYTE              ;variable para almacenar la 1era clave
SETSEGUN VAR BYTE              ;variable para almacenar la 2da clave
SETERCER VAR BYTE              ;variable para almacenar la 3ra clave
SETCUART VAR BYTE              ;variable para almacenar la 4ta clave
INICIANDO:                     ;programa del led para saber si esta funcionando
FOR R = 1 TO 2
high LEDVERDE : HIGH BIP
PAUSE 1000
LOW LEDVERDE : LOW BIP
PAUSE 150
NEXT
;******************GUARDA LA CLAVE DE FABRICA**********************
EEPROM 0.[1,2,3,4]               ;cargar la memoria EEPROM desde la direccion 0 en adelante
;******************************************************************
RESET:
FOR R = 1 TO 3
HIGH LEDAMARILLO : HIGH BIP
PAUSE 50
LOW LEDAMARILLO : LOW BIP
PAUSE 50
IF (CUATRO=0) AND (UNO=0) THEN RESET   ;corresponden a las teclas 7 y C
NEXT
READ 0,SETPRIME               ;leer el dato de la EEPROM 0 y guardar en setprime
READ 1,SETSEGUN               ;leer el dato de la EEPROM 1 y guardar en setsegun
read 2,SETERCER               ;leer el dato de la EEPROM 2 y guardar en setercer
read 3,SETCUART               ;leer el dato de la EEPROM 3 y guardar en setcuart
goto TECLAUNO                 ;ir a comparar claves
GRABAUNO:                     ;programa para cambiar clave
GOSUB PTECLA : HIGH LEDROJO : HIGH LEDVERDE   ;espera a que suelte las teclas
GOSUB BARRIDO : GOSUB PTECLA  ;ir a barrido y retorna a un antirrebote
HIGH LEDROJO : HIGH LEDVERDE  ;mantener encendido el LED
WRITE 0,NUMERO                ;guardar en la EEPROM 0 el valor de numero
GRABADOS:                     ;programa para cambiar clave
gosub BARRIDO : GOSUB PTECLA  ;ir a barrido y retorna a un antirrebote
high LEDROJO : HIGH LEDVERDE  ;mantener encendido el LED
WRITE 1,NUMERO                ;guardar en la EEPROM 1 el valor de numero
GRABATRES:                    ;programa para cambiar clave
gosub BARRIDO : GOSUB PTECLA  ;ir a barrido y retorna a un antirrebote
high LEDVERDE : HIGH LEDROJO  ;mantener encendido el LED
write 3,NUMERO                ;guardar en la EEPROM 3 el valor de numero
GRABACUATRO:                  ;programa para cambiar clave
high LEDROJO : HIGH LEDVERDE  ;mantener encendido el LED
write 4,NUMERO                ;guardar en la EEPROM 4 el valor de numero
goto RESET                    ;ir a reset para cargar el nuevo valor en las variables
BARRIDO:
low A                         ;sensar la fila A
if UNO =     0 THEN NUMERO = 1 : RETURN   ;tecla pulsada retorne cargada con 1
IF DOS =     0 THEN NUMERO = 2 : RETURN   ;tecla pulsada retorne cargada con 2
IF TRES =    0 THEN NUMERO = 3 : RETURN   ;tecla pulsada retorne cargada con 3
IF CUATRO = 0 THEN NUMERO = 10 : RETURN   ;tecla pulsada retorne cargada con 10
HIGH A
LOW B                         ;sensar la fila B
IF UNO =     0 THEN NUMERO = 4 : RETURN   ;tecla pulsada retorne cargada con 4
if DOS =     0 then NUMERO = 5 : return   ;tecla pulsada retorne cargada con 5
IF TRES =    0 then NUMERO = 6 : return   ;tecla pulsada retorne cargada con 6
if CUATRO = 0 then NUMERO = 11 : return   ;tecla pulsada retorna cargada con 11
high B 
low C                        ;sensar la fila C
if UNO =     0 then NUMERO = 7 : return   ;tecla pulsada retorne cargada con 7
if DOS =     0 THEN NUMERO = 8 : RETURN   ;tecla pulsada retorne cargada con 8
if TRES =    0 then NUMERO = 9 : return   ;tecla pulsada retorne cargada con 9
if CUATRO = 0 Then NUMERO = 12 : return   ;tecla pulsada retorne cargada con 12
high C
low D                       ;sensar la fila D
If UNO =    0 then NUMERO = 14 : return   ;tecla pulsada retorne cargada con 14
if DOS =     0 then NUMERO = 0 : return   ;tecla pulsada retorne cargada con 0
if TRES =   0 then NUMERO = 15 : return   ;tecla pulsada retorne cargada con 15
if CUATRO = 0 then NUMERO = 13 : return   ;tecla pulsada retorne cargada con 13
high D
pause 10
GOTO BARRIDO
;*********************PROGRAMA ANTIRREBOTE DE TECLAS****************
PTECLA:
high LEDVERDE : high BIP ;genera sonido cada vez que se pulsa tecla
pause 100                ;duracion 100 milisegundos
low LEDVERDE : low BIP   ;apagar sonido y led
ESPACIO:                 ;programa antirrebote de teclas
if UNO =    0 then ESPACIO   ;si la tecla sigue pulsada ir   espacio
IF DOS =    0 then ESPACIO   ;si la tecla sigue pulsada ir a espacio
IF TRES =   0 THEN ESPACIO   ;si la tecla sigue pulsada ir a espacio 
IF CUATRO = 0 then ESPACIO   ;si la tecla sigue pulsada ir a espacio
pause 25
return                       ;retorna si suelta las teclas
;******************************************************************
;**********************COMPARACION DE CLAVES***********************
TECLAUNO:
GOSUB BARRIDO             ;ir a barrido y retornar con un valor
GOSUB PTECLA              ;envia a un programa antirrebote para soltar tecla
if NUMERO = SETPRIME then TECLADOS   ;si el numero es igual a SETPRIME ir a TECLADOS
goto FALSO                ;caso contrario ir a lazo falso
TECLADOS:
gosub BARRIDO             ;ir a barrido y retornar con un valor
GOSUB PTECLA              ;envia a un programa antirrebote para soltar tecla
if NUMERO = SETSEGUN THEN TECLATRES   ;si el numero es igual a SETSEGUN ir a TECLATRES
goto FALSO1               ;caso contrario ir a lazo falso
TECLATRES:
GOSUB BARRIDO             ;ir a barrido y retornar con un valor
GOSUB PTECLA              ;envia a un programa antirrebote para soltar tecla
if NUMERO = SETERCER THEN TECLACUATRO   ;si el numero es igual a SETERCER ir a TECLACUATRO
goto FALSO2               ;caso contrario ir a lazo falso
TECLACUATRO:
GOSUB BARRIDO             ;ir a barrido y retornar con un valor
GOSUB PTECLA              ;envia a un programa antirrebote para soltar tecla
if NUMERO = SETCUART THEN OPENGE   ;si el numero es igual a SETCUART conectar rele
GOTO FALSO3               ;caso contrario ir a lazo falso
OPENGE:
FOR R = 1 to 2            ;2 pitos indica clave correcta
pause 100 
high LEDAMARILLO : high BIP : HIGH LEDVERDE
pause 100
low LEDAMARILLO : LOW LEDVERDE : LOW BIP
next
high DOOR                ;se conecta rele (abrir puerta)
PAUSE 1500               ;esperar 1,5 segundos
low DOOR                 ;desconectar rele
HIGH A : HIGH B : HIGH C : LOW D   ;sensar solo la fila D
IF CUATRO = 0 THEN GRABAUNO   ;corresponde a la tecla D para ir a GRABAR
GOTO TECLAUNO                 ;ir nuevamente a comparar las claves
;******************************************************************
;****************LAZOS FALSOS TECLAS ERRONEAS**********************
FALSO:
gosub BARRIDO : GOSUB PTECLA   ;estas teclas no comparan ninguna
FALSO1:                        ;clave solo espera que termine de
GOSUB BARRIDO : GOSUB PTECLA   ;pulsar las 4 teclas y no hacer nada
FALSO2:
GOSUB BARRIDO : GOSUB PTECLA 
FALSO3:
for R = 1 to 15                ;30 pitos indica calve incorrecta
pause 150
high LEDROJO : HIGH BIP
pause 150
low LEDROJO : LOW BIP
high A : HIGH B : HIGH D : LOW C   ;sensar solo la fila C
if (CUATRO = 0) AND (UNO = 0) then RESET   ;corresponden a las teclas 7 y C para resetear
next
PANICO:
high LEDBLOQUEADO
pause 500
low LEDBLOQUEADO
pause 500
HIGH A : HIGH B : HIGH D : LOW C   ;sensar solo la fila C
IF (CUATRO = 0) AND (UNO = 0) THEN RESET   ;corresponden a las teclas 7 y C para resetear
GOTO PANICO                        ;queda en este lazo para siempre
;******************************************************************
endahora presento seguidamente donde esta el problema:
		PHP:
	
	;******************GUARDA LA CLAVE DE FABRICA**********************
EEPROM 0.[1,2,3,4]             ;cargar la memoria EEPROM desde la direccion 0 en adelante
;******************************************************************"
warning line 46: bad token "."
error line 46: expected '['. (CERRADURA ELECTRONICA CON CLAVE EN MEMORIA EEPROM Y CAMBIO DE CLAVE.bas)
"
es la primera vez que hago una programacion asi, y por lo que he visto, en lo demas no da falla.. mañana acabare de hacer el diagrama y lo subo, y me dicen tambien si esta bien...
si necesitan mas informacion, solo diganmelo
saludos
 
   
				 
						 
			 
 
		 
 
		 
 
		 
 
		