La dirección es muy importante. Si su dirección está fuera por unos pocos bytes entonces perderá esos bytes desde el frente o la parte posterior de la cadena. No suceden errores. Este 16 * tmp5-1 se ve muy bien. No es aceptable. Sellos básicos quedan estrictamente matemáticas derecho. Sellos básicos 2s permiten paréntesis como 16 * (tmp5 – 1). Con este 16 * tmp5-1 es en realidad (16 * tmp5) – 1 y estaría fuera de 1 dirección. En este caso perdí la primera letra de la cadena que estaba editando.
Matemáticas pueden ser divertidas. El 2s de estampilla básica apoyo números negativos, pero debes tener cuidado con ellos. Si tienes dos variables en cuenta regresiva y ellos está comparando tmp3 > = tmp4. Si tmp3 llegue a 0 y reste 1 será negativo y más tmp4. Poner una instrucción de depuración en tmp3 y ver donde va. En este caso mi destino es tmp5. Lo cambié a tmp4 > = tmp5 y dejar tmp3 a 0. Luego ajusté tmp5 por-1 para la matriz base 0 de cadenas. Ceros no son buenos para matemáticas o comparar.
Lo principal que usted necesita para una cosa interactiva es memoria. La memoria más barata y más fácil de usar es una E-prom serie. ¿Qué es un E-prom? Es una memoria eclécticamente programable y borrable eclécticamente con una interfaz serial. E-Proms mantienen su memoria cuando el poder se apaga. E-Proms le permiten reprogramar la memoria. Generalmente 10 millones o más ciclos. Lea su manual. Usted puede almacenar casi cualquier tipo de datos en un E-Prom. Me gustaría que tenía amigos a compartir esto con. Voy a estar trabajando en pantallas LCD y un terminal mudo para mostrar lo fácil que es conectar tus ideas a tu gente.
El archivo de código es EPromEW6.txt. Se debe cambiar a EPromEW6. bs2 para él ejecutar. El zip tiene el archivo de código e imágenes.
La mayoría de E-Proms son que bytes tamaño de arreglos de discos de memoria. El usuario más grande de la memoria es picaduras como la quinquenal "Hola mundo". Las cadenas son una matriz de bytes en la memoria del procesador. Cadenas están bien adaptadas para E-Proms. En este ejemplo mi serial E-Prom es 2048/8 o 16 K con 16 128 páginas bytes. Sí, 128 cadenas. Como la mayoría de los dispositivos serie E-Proms tienen un procesador que está configurado para escribir y leer la matriz de memoria. Controlas con comandos y cables de entrada y salidas. Tiempo lo es todo.
Necesita un montón de pines para utilizar un E-Prom serial cuando se escribe a la memoria. Las clavijas: SO de Bytes de salida, SI Bytes entrada reloj CK y CS Chip seleccionar. Usar pernos separados para SO y SI proteger a mi E-Prom. Utilice comandos a E-Prom lo que usted quiere. Para leer un Byte puede baja CS y enviar un comando de lectura. "ShiftOut epRead\8, erAddr\16." El \8 dice ShifOut para enviar 8 bits total. 32 es 100000 es solamente 6 pedacitos. El \8 hace 00100000 y es de 8 bits. Es lo que necesita E-Prom. Lectura es una secuencia continua de Bytes mientras que proporcione impulsos de reloj. "ShiftIn myStr(tmp1)." Puede usar una dirección con el comando read. Cada página es 16 Bytes. Por lo que 32 es Página 1. Recuerda que la memoria del E-Prom es cero basado y cadenas son cero terminada.
La escritura es un poco más complicada. Tienes que escribir proteger y pernos Mantenga altos entonces establece CS baja y envían un comando escriba Enable. "SHIFTOUT epSi, epCk, MSBFIRST, [epWrtEN\8]". Entonces subes CS pausa 5 ms y luego menor pausa CS 5ms. Entra el comando en el E-Prom. Luego debe enviar un comando de escritura. "SHIFTOUT epWrite\8, erAddr\16." En la escritura generalmente necesita escribir los 16 bytes en un comando y terminarlo correctamente. En un bucle "SHIFTOUT myStr(tmp1)." Luego pausa 5 ms y aumentar mi CS para el E-Prom para escribir mis datos. Usted debe esperar o puede bloquearse E-Prom. Para reiniciar el E-Prom baje espere CS 5ms luego subir espera CS 5ms luego bajar CS y continuar con los comandos. Mantengo mi CS baja con una resistencia de 10K a tierra.
E-Prom también tiene un pin escribir proteger. Con este pin baja no puede escribir a lo E-Prom. También tiene un pasador de retención que cuando es baja E-Prom está apagado. Usted puede escribir proteger un cuarto, la mitad o toda la memoria con las banderas de estado. Sigo escribir proteger y mantener conectado a VDD.
Abordar es fácil y obligatorio. Mi dirección es en límites de bytes 16 así que es fácil. Puede escribir cualquier página 16 bytes de memoria que usted necesita y nada más se ve afectado. Memoria de acceso aleatorio verdaderamente en 128 secuencias de 16 bytes. Recuerde que la memoria es cero base y cadenas son cero terminada. Cadena 1 es realmente cadena 0. Todo mi numeración de la cadena es 1 base. El programa se encarga de los detalles. En mi programa de epAddr es el punto cadena y myStrS cuantas cadenas tengo. Visualización de las cuerdas comienza en 0 y funciona aunque myStrS cada secuencia de numeración. Cadenas concatenadas sólo la primera cuerda tiene un número. Las cadenas sólo el primero de ellos obtiene un número.
Una cosa acerca de manejo de cadenas es que la mayoría de los sistemas usa cero cadenas terminados. Esto significa que el último Byte en "Hola World0" es un Byte cero. Una matriz de bytes 16 tiene 15 caracteres y un terminación cero. También la mayoría de matrices de bytes son cero basado. Es la primera posición es cero y el último es 15. Para que las picaduras al ser reconocido que tiene que asegurarse de el cero está en el lugar correcto. Puede utilizar una matriz de 16 bytes para todo. Corta cadenas sólo hacia el frente y terminarles. Se ignorará el resto de la cadena. El seguimiento de su posición. Cuando son concatenar una cadena a la cadena siguiente no puede utilizar los 16 bytes. ¿Por qué? La rutina de salida queda por la primera cadena terminada.
Otros datos deben ser formateado para caber en una matriz de bytes. Una palabra tiene 16 bits o 2 Bytes. Un alto Byte y un Byte bajo. Largas o dobles tienen 32 Bits o cuatro Bytes. Byte 3, Byte 2 y Byte 1 Byte 0. Construir formateadores para cuidar este tipo de datos. Almacena Byte por Byte en un orden que desee. Como el Byte alto y el Byte bajo. Carga nuevamente el mismo camino. La memoria de la mayoría de los procesadores es páginas de 16 bits. Palabra de tamaño de memoria que puede dividirse en Bytes y en algunos hasta las puntas o brocas para las variables. Cuando guarde una variable de la palabra generalmente tienen acceso a sus Bytes como variables a.
Algunos procesadores tienen buena cadena de manipulación de funciones. Estoy usando un Parallax.com Basic Stamp 2 para este ejemplo. Los comandos son Debug, DebugIn, SerIn y SerOut. Debug y serOut son la misma función en aspectos más que ir a diferentes lugares. Para una cadena de entrada utiliza a un formateador de STR que busca cadenas de caracteres. Entradas que una cadena de hasta 15 caracteres de largo que carga en un tiempo de matriz de bytes cuando el usuario presiona Enter(13) y busca "DebugIn STR time\15\13". Si la cadena es menos de 15 caracteres los caracteres restantes se rellenan con ceros. La cadena "Hola" sería "Hello00000000000" en la memoria. "Tiempo de STR de depuración" imprime "Hola". El primer cero termina la cadena y el resto se ignoran.
Números pueden ser divertido. Los formateadores de entrada son para cadenas de caracteres. "DebugIn tiempo DEC" mira la cadena "hello123bye" y lo convierte en el número 123 y la pone en el variable tiempo. Ignora el resto. Útil para un montón de cosas interactivas. Para matrices de Bytes se utilizan caracteres de control como el cero como un terminador al final de cadenas. Crear otros caracteres de control para satisfacer sus necesidades. Usar '+' para separados canta corto y Únete letanía en mis rutinas de salida. Cadenas cortas se pueden poner juntos generalmente en la parte delantera E-Prom. Quince caracteres nunca son suficientes. Puede crear a todo tipo de controles de rutina de salida.
Mi programa: el botón entra en modo de comando. Escriba un comando y pulse Intro en el teclado. No puede mantener estos procesadores pequeños esperando una entrada. Son propensos a que se caiga. Se ejecuta un bucle activo a la espera de un botón al ser presionado. Mi programa almacena la última dirección y la cuenta de cadena en EEPROM del procesador y carga en el inicio o reinicio. Establezca myStrs en cero para nuevas cadenas y 1 para las cadenas que se cargue. Mi programa es un cargador rápido de la cadena para un E-Prom.
El programa utiliza la terminal de depuración y un botón estándar. Pulsar el botón para entrar al modo de comando. Tipo de la entrada y presione entran. El led debe destellar cuando esperando un comando. Recuerde ajustar los procesadores EEprom cuando finaliza una sesión.
Para editar las cadenas después de un reinicio utilizan comando 60 primero para cargar su cuenta dirección y cadena en mi programa. Mando 10 entrará en una nueva cadena después de la última cadena. Comando 40 modifica una cadena. Cuando haya terminado con su comando de uso cuerdas 50 para escribir la dirección y la cadena cuenta en la EEprom. Utilice el editor para cambiar myStrs a cero para nuevas cadenas o 1 o superior para cargar las cadenas y volver a cargar el programa.
El Arduino es demasiado divertido. Manejo excelente de la cadena.
Sistemas PICAXE: No tienen arreglos de discos. Sólo el x2 piezas tienen un comandos ShiftOut y ShifIn. El Bloc de notas es una zona de memoria temporal para el almacenamiento de datos como arreglos de discos. Sólo en los siguientes chips Picaxe PICAXE - 28 X 1, 40 X 1, 20 X 2 piezas tienen 128 bytes (0-127) de la libreta de apuntes y PICAXE - 28 X 2, 40 X 2 piezas tienen 1024 bytes de Bloc de notas (0-1023). Al uso de la libreta de apuntes: el puntero es ptr = var, direccionamiento indirecto es ' (incremento de correos) y ' (postdecrement). Cada vez que el ' nombre de variable se utiliza un comando el valor del puntero del Bloc de notas se incrementa automáticamente en uno. Esto lo hace ideal para el almacenamiento de una única matriz dimensional de los datos. Vea el ejemplo en el manual.
ShiftIN y ShiftOut: el comando spiin (shiftin también aceptado por el compilador) es un método de 'bit-bang' de comunicación SPI en las partes X1 y X2 solamente. Todas las otras partes deben utilizar el programa de ejemplo incluido al dorso para duplicar este comportamiento. Para una solución de hardware para X1/X2 piezas Consulte el comando 'hshin'. O puede usar mi doLights y checkLights de EasyLights.