Puede ser adelante con PAC de Opto22 y Linux (3 / 4 paso)

Paso 3:

ESTRUCTURA GENERAL DE UN PROGRAMA DE

Ahora, tener una herramienta de gestión muy básica de PAC, los ficheros de estrategia de control fueron estudiados en detalle, y la información recogida es la siguiente:

  • Todos los archivos con extensión .crn1, .crn2, .crn3, deben tener el mismo nombre que el programa "principal"
  • el archivo .crn1 contiene la línea: nombre de archivo. " PNAME "; donde PNAME es el nombre de "principal" del programa. El resto de las líneas de este archivo nunca cambiada cuando se crearon diferentes programas
  • los archivos .crn2 contienen los nombres de tareas o "cartas" que compone un programa, las variables a utilizar y la entrada-salida del perno asignación
  • .crn3 archivos contiene código de inicialización para: tareas, variables y hardware entrada-salida
  • Debe haber un archivo *.CCD para cada tarea que compone un programa, el nombre debe coincidir con la información contenida en el archivo .crn2

Se creó una estrategia de control de la muestra "Parpadear". Se compone de dos tareas: una alterna una salida digital e incrementa un contador cada segundo. El segundo se mira si el contador es exactamente divisible por 5 (modulo 5) y se convierte en una salida digital si la condición es válida, si no lo apaga

BLINK.crn1

En este archivo hay una línea donde se encuentra el nombre del programa "Parpadear". El resto de las líneas parecen algún tipo de asignación de espacio de memoria para variables y de la entrada-salida. No hay cambios se observaron en esas líneas con diferentes programas descargados y analizados.

_END NUEVA $$$. EJECUTAR

: NOMBRE DE ARCHIVO. " PARPADEAR ";

1 $VAR 0 * _HSV_SEMA

1024 $VAR 0 * _HSV_TEMP

200 0 $VAR * _HSV_INIT_IO

IVAR 0 ^ _HNV_INIT_IO

BLINK.crn2

En este archivo se encontraron tres cosas:

  • Tareas que componen el programa: Powerup, slowblink, _INI_IO. Encendido es la tarea predeterminada, no puede ser retitulado ni eliminado. slowblink fue creado en el programa del fabricante, y _INIT_IO es probablemente es una tarea interna que inicializa el hardware automáticamente.

  • Variables utilizadas en el programa: countervar y modvar
  • Alias de pin I/O hardware: en este caso los pines digitales 0 y 3 fueron asignados alias: DIGITAL_OUT_1 y DIGITAL_OUT_4

TAREA 0 & _INIT_IO

TAREA 0 & encendido

TAREA 0 & slowblink

IVAR 0 ^ countervar

IVAR 0 ^ modvar

$0000000000000000... 32769 1.000000 0.000000 0,010000 2001 $7F000001 MBOARD 0% SELF_RACK SPOINT 0.0 0% SELF_RACK DE SALIDA

PUNTO 0 ~ DIGITAL_OUT_1

SPOINT 0.0 SALIDA 3% SELF_RACK

PUNTO 0 ~ DIGITAL_OUT_4

BLINK.crn3

Este archivo es un poco más largo que el anterior. Parece que en la parte inicial, tareas y todo tipo de variables se agrupa en matrices y cerca de la inicialización de fin de countervar y modvar a 0 es visibles. También observe que los pines digitales son por entradas por defecto "0", y los que se utilizará como salidas se deben escribir "1" ($... 0009 pins 0 y 3)

: CONFIG_PORTS W_INIT_IO $0000000000000009... % SELF_RACK PERMITE!

«% SELF_RACK (1/1) "* _HSV_INIT_IO $MOVE 0 ^ _HNV_INIT_IO

% SELF_RACK PERMITEN

«Inicialización de variables» * _HSV_INIT_IO $MOVE

0 ^ countervar

0 ^ modvar

««* _HSV_INIT_IO $MOVE

Archivos de la tarea (Powerup.ccd, slowblink.ccd)

En estos archivos se encuentra el código del programa, para cada tarea programada. Hay dos cosas aquí: bloques de código y lista del bloque de código casi al final.

T: T0

DUMMY

0_0

0_1

0_3

0_5

0_7

0_10

T; y encendido ' T0 SETTASK

Cada bloque es marcado a-b, donde una es tarea número y b es un "identificador de bloque" dentro de esa particular tarea. Bloque números coinciden con los números de bloque se muestra en la aplicación del fabricante y probablemente se utilizan para el modo depuración de bloque por bloque.

El siguiente es un ejemplo de un bloque de código:

: 1_1

VERDADERA

1 LÍNEA. OUl

^ modvar

1 <

TIERRA

SI-4 OTRO -3 DESPUÉS DEL SALTO;

Cada etiqueta está precedido por dos puntos (:), a continuación de línea. Instrucción número precedida por un número de línea. Este número de línea coincide con los números de línea se muestra en la aplicación de desarrollo de los fabricantes y se utilizan probablemente para el modo depuración de línea por línea

Algunas porciones del código, se asemejan a especialmente a la instrucción IF donde la condición estaba antes de la palabra "IF".

Un bloque termina con una instrucción de salto, seguida de un punto y coma (;). Instrucciones de salto son relativos, no absolutos.

Artículos Relacionados

Ser perezoso con mando a distancia TV

Ser perezoso con mando a distancia TV

Soy demasiado perezoso para hacer un paseo al encender/apagar cualquier aparato eléctrico. Así que, aquí está mi genio, TV control remoto.Este proyecto se utiliza para cambiar los electrodomésticos mediante control remoto de la TV. Usa philips RC5 pr
ATTiny85 conecta con pantalla OLED de I2C - grandes cosas puede ser pequeño

ATTiny85 conecta con pantalla OLED de I2C - grandes cosas puede ser pequeño

Recientemente me encontré con una pequeña pantalla OLED que también utilicé para otro proyecto. Esta vez pensé en que una pantalla pequeña puede ser impulsada por un procesador pequeño [AT]:).La visión es - "crear un pequeño juego de la máquina"
Programar PAC de Opto22 Usando FORTH En Linux

Programar PAC de Opto22 Usando FORTH En Linux

CONTROLADORES INDUSTRIALES PAC, PLC Y LINUXEste artículo también está disponible en inglés haciendo clic aquíEl soporte para linux se ofrece un hardware tipo industrial PAC y/o PLC, por lo menos en el caso de los fabricantes mas grandes y conocidos e
Modificar tu sable láser personalizado con luces y sonido

Modificar tu sable láser personalizado con luces y sonido

así que ahí estaba, un Padawan en el camino del Jedi que acababa de crear su sable de luz. El único problema era que la falta de fuerza en mi nueva herramienta... inquietante. Así que para complementar los poderes de la fuerza de mi sable de luz y as
¿Puede hacer eso con un toque de KIndle?

¿Puede hacer eso con un toque de KIndle?

Nunca pude entender por qué alguien querría poseer un e-Reader. Entonces mis hijos me regaló un Kindle Touch y he encontrado formas de hacerla hacer por mí mucho de lo que un teléfono inteligente o un iPad hace para otras personas. Un día reemplazará
4 servo drive CellBot que puede ser controlado remotamente.

4 servo drive CellBot que puede ser controlado remotamente.

empecé con una idea de lo que quería intentar desde el principio pero uno tras otro finalmente llegué a donde estoy ahora. Este robot puede ser controlado desde cualquier lugar del mundo y conducido alrededor de la casa remotamente. Puedo ver a travé
Diseño de corte por láser Ponoko con SketchUp e Inkscape (un estudio en cubos)

Diseño de corte por láser Ponoko con SketchUp e Inkscape (un estudio en cubos)

este Instructable discutirá los aspectos prácticos de los diseños presentados en SketchUp, Inkscape y corte por láser Ponoko. Se le mostrará éxitos y fracasos (no tiene ningún sentido en la toma de mis errores - puedo hacer lo suficiente para todos).
Cómo láser corte con Sketchup y 123dmake

Cómo láser corte con Sketchup y 123dmake

Esto le dará un curso acelerado sobre cómo utilizar sketchup, 123dmake y un láser de cortePaso 1: Paso uno: uso de SketchupDespués de abrir Sketchup usted encontrará que hay muchas escalas diferentes que puede utilizar. Este tutorial tendrá que utili
Jardinería puede ser un proyecto familiar maravilloso

Jardinería puede ser un proyecto familiar maravilloso

Si buscas una actividad al aire libre participación que permite a toda la familia a participar, jardinería puede ser una maravillosa manera de involucrar a tus hijos en una sana afición que se puede disfrutar. Con poca gente, está mucho más cercanos
Comunicación serie ATTiny con pequeño programador AVR

Comunicación serie ATTiny con pequeño programador AVR

ATTinies (como el 85 ATTiny) son super impresionantes! Son super baratos, baja potencia y lo hacen qué proyectos de Arduino más logran de todos modos (dar una simple salida o disfrutar de una entrada simple).Una dificultad puede ver rápidamente lo qu
Funda gafas (puede ser laser corte) de cuero

Funda gafas (puede ser laser corte) de cuero

Hola gente!Incluso si verano comienza se descolora hacia fuera (en el hemisferio norte), días siendo brillantes, en el este de Francia. Así que me acabo de comprar un nuevo par de gafas de sol, puesto que mi las anteriores tenían muchos rasguños. Aqu
Plantas de araña: Cuidado fácil y duradero como puede ser

Plantas de araña: Cuidado fácil y duradero como puede ser

Plantas de arañason el niño salvaje rebelde del mundo planta de interior.Los tallos largos, con flores en los extremos y los bebés solo rociar cualquier qué camino quieren! Estas plantas, con raíces carnosas rizomáticos, colgantes necesitan un poco d
Diseño para mi mochila munición ser utilizada con una Nerf Vulcan

Diseño para mi mochila munición ser utilizada con una Nerf Vulcan

Ok así que en primer lugar me gustaría decir que esto está todavía en las etapas teóricas y yo actualizando esto como conseguir información útil. Sin embargo aún no he comenzado un prototipo. Lo que sigue es mis notas hasta el momento si alguno tiene
Flores puzzles (puede ser utilizado para un juego de ducha de bebé)

Flores puzzles (puede ser utilizado para un juego de ducha de bebé)

Bastante simple! GL ppl!Paso 1: Hacer los pétalosEn primer lugar usted necesita hacer los pétalos de la flor. Fácil, pero hay una cosa es dominar al hacer estos pétalos delicados, tamaño! Usted necesita para asegurarse de que los pétalos son del mism