Sunteți pe pagina 1din 6

Timers Ahora que podemos configurar los relojes en el MSP430, podemos utilizarlos para impulsar perifricos.

Perifricos son hardware que puede ser incorporado en el propio chip ni aadirse por nosotros. El control de los perifricos es donde el microcontrolador realmente viene a la propia, y es probablemente la razn que usted est aprendiendo sobre el MSP430. La primera perifrica vamos a examinar es el sistema Timer_A. En primer lugar, tenga en cuenta que tambin hay un sistema de Timer_B disponible en algunos dispositivos, que en muchos aspectos es como Timer_A. Ninguno de los dispositivos de lnea de valor tiene este sistema, por lo que si usted est ansioso por utilizar este perifrico en otro dispositivo, conocer Timer_A y luego consulte la Gua del usuario de la familia para obtener ms informacin. Un contador de tiempo es en realidad nada ms que un mecanismo de conteo que est ligada a algn tipo de intervalo regular proporcionada por un reloj. El Timer_A perifrica es lo que llamamos un temporizador de 16 bits. Esta definicin significa simplemente que el temporizador llegue a 0 en binario a0b1111111111111111 o 0xFFFF en hexadecimal, 65 535 en decimal. Bastante simple, y muy til cuando se sabe cmo manipular el comportamiento del temporizador. Modos de temporizador

Hay tres modos de operar Timer_A. Cul se utiliza depende totalmente de la aplicacin. El primer modo es lo que llamamos el modo continuo: Timer_A acta como un odmetro binario de 16 dgitos, que cuenta de 0 a 0xFFFF y luego "da la vuelta" a 0. El segundo modo se llama modo, aqu, al igual que en el modo continuo, se cuenta y se da la vuelta a 0. Esta modalidad, sin embargo, le permite elegir hasta qu nivel de los condes de temporizador antes de volcarse. El tercer modo, arriba / abajo el modo, es similar al modo en que se puede programar el lmite superior. Se diferencia en que en vez de rodar a 0, se da la vuelta y una cuenta atrs hasta 0. Cuando usted elige utilizar los diferentes modos pueden o no ser inmediatamente obvio, as como usted hojear artculos en este y otros sitios, tome nota de cmo se utiliza cada modo cuando se les ve en los ejemplos. Adems de las tres formas de contar en Timer_A, tambin hay algunas maneras que podemos hacer uso de la barra. Timer_A tiene la capacidad de establecer "puntos de control" en su contabilidad (dispositivos Value Line slo tienen dos, pero otros dispositivos tienen un tercio). TI llama a estos puestos de control Captura / Comparacin de Registros. El uso ms bsico de estos registros es establecer valores en los que el contador de banderas del procesador para hacer algo especial. De hecho, uno de estos registros es lo que se utiliza para establecer el lmite superior de arriba y arriba / abajo de modo. El otro registro slo banderas del procesador y permite que el contador de tiempo para seguir contando. (Este es tambin el comportamiento del primer registro en el modo continuo.) Este tipo de uso es el modo de comparacin del registro, nos pusimos un valor que se compara con la cuenta actual en Timer_A. Si los valores son iguales, indica que es el caso con el procesador. Captura modo se

comporta de manera diferente, el temporizador de espera de algn tipo de seal (a menudo de algn tipo de entrada) y luego registra el valor actual del contador de tiempo en el registro sin detener el temporizador, algo as como la funcin de tiempo de vuelta de un cronmetro. Registros Con tantas maneras de utilizar Timer_A, probablemente pueda imaginar corresponde a una gran cantidad de registros en el MSP430 de utilizar y controlar el cronmetro. Hay, de hecho, al menos siete registros utilizados en cualquier dispositivo con el Timer_A perifrica. Echemos un vistazo a cada uno de ellos con ms detalle. En el Manual del usuario de la familia, vaya a las pginas 12-20 a travs de 12-23 para ver los mapas registro. TACTL - El Registro de Control Timer_A se utiliza para establecer el vnculo entre el temporizador y un reloj y seleccione el modo utilizado. Los bits TASSELx (8 y 9) dicen que el temporizador del reloj de usar como su fuente. La frecuencia de reloj se puede dividir por un factor de ms de 2, 4, 8 o el uso de los bits de IDx (6 y 7). (Tenga en cuenta que este es un nuevo fraccionamiento, de cualquier divisin de hecho la fuente de reloj para el reloj en s,. Usted podra tener una divisin total de hasta 64 desde su fuente de reloj para este perifrico) Los bits MCX (4 y 5) seleccionar el modo particular de la hora de usar. Tenga en cuenta especialmente que el establecimiento de estos bits a 0 (el valor predeterminado en el POR) detiene el cronmetro completamente. TACLR es el bit 2. Si se escribe un 1 en este bit, se restablece el temporizador. El MSP430 reiniciar automticamente este bit a cero despus de restablecer el temporizador. TAIE y TAIFG (bits 0 y 1) el control de la capacidad de que el temporizador interrumpe desencadenantes; ms en esto pronto! TAR - La Timer_A Registro es el contador actual, la lectura de este registro indica el valor actual del contador. TACCRx - El Timer_A Capture / Compare registros, de los cuales hay dos en los dispositivos de la lnea de valor (TACCR0 y TACCR1) son donde se almacenan determinados valores que queremos usar. A modo de comparacin, escribimos los valores aqu donde queremos que el temporizador para indicar un evento. En particular, TACCR0 se utiliza para almacenar el valor al que queremos Timer_A a contar en y arriba / abajo de modo. En el modo de captura, el procesador registrar el valor de TAR cuando el MSP430 es sealado para ello. TACCTLx - El Timer_A Capture / Compare Registros de control corresponden a los registros TACCRx. Estos establecen el comportamiento de cmo se utilizan los CCR. CMx (bits 14 y 15) cambio de qu tipo (s) de las seales dicen que el temporizador para realizar una captura. CCISx (bits 12 y 13), seleccione el que se toman las seales de entrada. SCS y SCCI (bits 11 y 10, respectivamente) cambian la sincronicidad, el temporizador normalmente trabaja de forma asncrona para las seales de entrada. (S, yo no lo entiendo del todo esto todava tampoco. Est atento a un futuro post para explicar ms a fondo.) PAC (bit 8) cambia si se utiliza el modo de captura (1) o el modo (0) Comparar. OUTMODx (bits 5-7) seleccionar varios modos de salida de la seal del CCR cuando el temporizador seala una captura o comparar evento. CCIE y CCIFG (bits 4 y 0) son ms interrupciones asociadas al CCR. CCI y OUT (bits 3 y 2) son la entrada y la salida para el CCR. COV (bit 1) es el desbordamiento de la captura, este bit se pone a 1 si dos capturas se indican antes de que el primer valor de la captura es capaz de ser ledo. TAIV - El Timer_A interrupcin vectorial Registro, ya que hay varios tipos de interrupciones que pueden ser marcados por Timer_A, este registro contiene informacin sobre lo que las interrupciones han marcado. Los nicos bits utilizados aqu son bits 1-3 (TAIVx), que muestran el tipo de interrupcin que ha sucedido, lo que nos permite realizar diferentes acciones para resolver los diferentes tipos de interrupciones. Hay una gran cantidad de informacin para cubrir a explicar completamente estos registros, por desgracia, as que vamos a ver algunos ejemplos de cmo utilizar el Timer_A como medio para ilustrar lo que muchos de estos bits hacen y cmo usarlos. Antes de llegar a eso, sin embargo, tendremos que echar un vistazo a estas interrupciones, y ese ser el tema del prximo post. Esperemos que hemos sido capaces de aprender un poco sobre el funcionamiento general del Timer_A perifrica. En breve nos podremos ponerlo a trabajar en nuestras MSP430 diseos. Temporizadores y relojes y PWM! Oh My!

Voy a tratar de no ser tan prolijo en este post, ya que hay mucho que cubrir en este tema. Quiero hacerlo todo a la vez demasiado, yo preferira usted tiene cdigo de la diversin de jugar con que yo hago una parte de slo una teora. Al final de este artculo usted tendr una biblioteca PWM que puede utilizar en sus proyectos. As que aqu va, que me haga saber lo que piensas. Un reloj incrustado en la electrnica es lo que controla la rapidez con garrapatas del procesador. El MSP430 tiene mltiples relojes que pueden utilizados para los perifricos y la CPU. MCLK es el reloj maestro para la CPU. SMCLK es el reloj subprincipal. Ambos pueden ser seleccionadas para su uso en los perifricos, como un ADC o el temporizador. No voy a discutir ACLK aqu. Por qu tantos relojes? Eficiencia energtica. Diferentes relojes se apagan en diferentes modos de bajo consumo, por ejemplo LPM0 desactiva MCLK y la CPU, pero deja SMCLK funcionamiento para los perifricos conectados a l pueden seguir funcionando. Estos relojes pueden ser generados a partir de un nmero de diferentes fuentes y tambin se pueden dividir hacia abajo desde la entrada de reloj. Para obtener ms informacin sobre este consulte la Gua del usuario. As. Qu es toda esta charla sobre un pequeo temporizador tonto? El temporizador realiza un seguimiento de la cantidad de ciclos de reloj pasar sin tener que escribir cdigo especfico para mantener la nocin del tiempo. Esto puede ser til no slo para los modos de baja potencia, sino tambin para proyectos sensibles al tiempo. Para que sea sencillo y rpido, un contador de tiempo se debe inicializar y activado. Se proceder entonces a contar cuando el reloj hace tictac en un valor predefinido y luego comenzar de nuevo. Puede configurar el temporizador para generar eventos en varias veces en el camino a su valor final, estos eventos podran ser una interrupcin cuando se realiza un cierto nmero de ciclos de reloj, o puede cambiar, establecer o borrar un pin especializada. Tener el temporizador cambiar un pin sin llamar a las interrupciones o cualquier cdigo especializado es la mejor manera de crear un simple PWM. Qu es el PWM? La modulacin de pulso ancho. Por lo que estamos concered, es una onda cuadrada que tiene un ciclo de trabajo con una frecuencia cetain. El ciclo de trabajo es el porcentaje de tiempo que la onda es alta en un perodo. Cmo es su utilidad? Control del motor, control de luz. Piense de un LED, ms bajo es el ciclo de trabajo (cuanto menos su encendido durante un perodo de tiempo), el regulador de luz es. Hay un sinnmero de aplicaciones para el uso de PWM.

Ms informacin sobre el temporizador Hay algunas cosas que usted necesita saber antes de empezar a codificar. Como ya he dicho, el temporizador de cuenta ciclos de reloj, en realidad puede ser tan simple, pero no tiene por qu ser.Por ejemplo, el temporizador puede contar hasta cierto nmero o contar hacia arriba y hacia abajo.Los diferentes modos de funcionamiento son los siguientes (directamente de la Gua del usuario ). 1. Up Mode - El contador cuenta repetidamente desde 0 hasta el valor fijado en el registro TACCR0 2. Modo Continuo - El contador cuenta repetidamente desde 0 a 0xFFFF 3. Modo de Up-Down - El contador cuenta repetidamente desde 0 a TACCR0 y volver a bajar a 0

La imagen de arriba es una representacin visual de modo continuo (tomado de la Gua del usuario) Personalmente me gusta Up Mode lo mejor, as que va a utilizar que para construir nuestra biblioteca PWM. As que usted puede configurar una alarma para cuando el temporizador llega a TACCR0 o TACCR1, o puede cambiar uno de los timer.

El cdigo de prueba / / ************************************************ ************************ / / MSP430G2231 Demo - Timer_A, PWM TA1, Up Mode, SMCLK / / / / Descripcin: Este programa genera una salida PWM en P1.2 utilizando / / Timer_A configurado para el modo arriba. El valor de CCR0, 1000-1, define el / / Perodo de PWM y el valor CCR1 en los ciclos de trabajo PWM. Usando SMCLK, / / El temporizador frequenciy es de aproximadamente 1.1kHz con un ciclo de trabajo del 25% en P1.2. / Modo de funcionamiento / Normal es LPM0. / / MCLK = SMCLK = default DCO (alrededor de 1.1 MHz). / / / / MSP430G2231 / / ----------------/ / / | \ | | / / | | | / / - | RST P1.2/TA1 | -> CCR1 - 75% PWM / / | | / / | | / / / / M.Buccini / L. Westlund / / Texas Instruments, Inc / / Octubre de 2005 / / Construido con CCE Versin: 3.2.0 y IAR Embedded Workbench Versin: 3.40A / / / / Modificado por el CNM para MSP430LaunchPad.com Julio 2010 / / / / ************************************************ ************************ # Include "msp430G2231.h" void principal ( void ) { WDTCTL = WDTPW + WDTHOLD ; P1DIR salida P1SEL | = | = BIT2 ; BIT2 ;

12345678910 11121314151 61718192021 22232425262 72829303132 33343536373 83940414243

/ / Detener WDT / / P1.2 a la / / P1.2 a TA0.1 / / PWM Periodo / / CCR1 reset / set / / CCR1 ciclo de

CCR0 = 1000 - 1 ; CCTL1 = OUTMOD_7 ; CCR1 = 250 ; trabajo PWM TACTL = TASSEL_2 + configuracin _BIS_SR ( LPM0_bits ); }

mc_1 ;

/ / SMCLK, modo de

/ / Enter LPM0

ver la crudatimer.cEste Gist trado a usted por GitHub . Configuracin del temporizador

En primer lugar hemos creado nuestros pernos PWM. El cdigo siguiente establece P1.2 a la salida y permite el pasador de ser el bit de salida del temporizador TA0.1. P1DIR | = BIT2 / / P1.2 a la salida P1SEL | = BIT2 / / P1.2 a TA0.1 A continuacin tenemos que configurar los CCR0 y CCR1 registros, lo que determina que los acontecimientos suceden y qu tan alto el reloj contar con. CCR0 = 1000-1 / / PWM Periodo CCTL1 = OUTMOD_7 / / CCR1 reset / set CCR1 = 250; / / CCR1 ciclo de trabajo PWM (25%) Recuerde, el temporizador depende de la frecuencia de reloj que se est ejecutando. As que si usted tiene un SMCLK 1 MHz y quiere una salida de frecuencia PWM de 100 kHz, CCR0 tendr que contar hasta 10 dejando slo 9 valores para CCR1 para alternar el reloj en. Esto limita la resolucin del ciclo de trabajo puede tener. El DCO por defecto (oscilador controlado digital) que es la fuente de la MCLK y en este caso la SMCLK es de aproximadamente 1.1 MHz, haciendo que la frecuencia de PWM sobre 1.1kHz con un ciclo de trabajo de 25%. Ajuste CCTL1 = OUTMOD_7 hace dos cosas, uno de los cuales pueden no ser tan evidente.OUTMOD_7 es la opcin Reset / Set, que significa "La salida se restablece cuando el temporizador cuenta hasta el valor TACCRx. Se establece cuando el temporizador llegue al valor TACCR0" (De la Gua del usuario). Esto significa que cuando el temporizador realiza CCR0 empieza a contar de una y establece la salida PWM a 1, lo que tambin significa que cuando el temporizador realiza CCR1 que fijar la salida PWM a 0. Consulte la gua de usuario para algunas fotos y explinations agradables. Para este programa PWM usaremos SMCLK y modo hasta que el temporizador. Ahora tenemos que definir qu da y en qu modo el temporizador se va a utilizar. La siguiente lnea de cdigo establece el reloj y el modo de operacin. TACTL = TASSEL_2 + mc_1 / / Escoge SMCLK y Up Mode. En este registro tambin puede configurar las alarmas para que se activen, pero no va a hacer eso aqu ya que el pin PWM se puede activar sin necesidad de una interrupcin. Eso es todo por el cdigo, espero les expliqu todo throuroughly y eficiente. Si usted tiene alguna pregunta o no le gusta la forma en que estoy escribiendo este post, por favor hgamelo saber. Trato menos opinin y ms hechos.

Conexin del Hardware Para ver esto en accin visual, que supongo que muchos de ustedes lo hace, usted puede utilizar un analizador lgico, o ... un LED. As que vamos a conectar el LED. Dado que estamos limitados en cuanto a qu pines podemos conectar al temporizador utilizando este mtodo (no podemos conectar P1.0), tendremos que conectar P1.2 a uno de los LED del LaunchPad. Espero que haya instalado encabezados (hombre o mujer) en el LaunchPad ya. Saque el puente que est sobre uno de los LED y luego conectar el LED al pin P1.2 en el tablero. Si usted est teniendo problemas con esto, escribir un comentario, yo te ayudar. Ejecute el programa, a continuacin, modificar de inmediato. A medida que cambia el ciclo de trabajo el brillo del LED cambiar. Cuanto ms cerca CCR1 se establece en CCR0, ms brillante que el LED va a ser, cuanto ms lejos ms oscuro ser. Enhorabuena, ha abordado PWM y tener un conocimiento bsico del temporizador. En un prximo post voy a estar proporcionando las bibliotecas de algunos de los perifricos que simplemente puede incluir en su proyecto, esto es por lo que no tendr que preocuparse por todos los detalles cuando se utiliza un perifrico. Yo podra proporcionar a los pero creo que usted debe entender cmo funciona todo antes de usarlo, de lo contrario sera la programacin en C # en una

computadora de escritorio. Bibliotecas que voy a proporcionar un valor incalculable para m hace muchos aos, cuando empec con microcomputadoras. Espero que eso era conciso y tena sentido. Dame un poco de retroalimentacin si te ha gustado el estilo de este uno mejor.

Advertencia: Estoy tratando de usar SyntaxHighlighter por primera vez con este post (Gracias por la punta Zunayed!). Tenga paciencia si tardo unas revisiones para obtener el cdigo muestra correctamente (o en absoluto). Gracias por su paciencia. Edit: Acabo correg el error comentando en mi cdigo que dice incorrectamente ACLK. Adems, a continuacin he aadido una imagen de mi Logic Analyzer la verificacin de la forma de onda para que ustedes pueden ver lo que parece. Tengo P1.0 y P1.2 atadas.

S-ar putea să vă placă și