This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

PWM 2553

Other Parts Discussed in Thread: MSP430G2553

Hello,

This this is my first project for msp430  and i am having problems to light a led using a pwm. I am using two controls,one by 4 keys and another using a variable resistor. the led light up at first but don´t change while I change the keys or the resistence. Can any one help me? Above the code i wrote in IAR:

#include "msp430g2553.h"

          ORG       0x0200              ;INICIO DA RAM(DADOS) NO MSP430G2553.
          
          ORG       0xC000              ;INICIO DA FLASH(PROGRAMA) NO MSP430G2553
          
RESET

;-------------------CONFIGURA APONTADOR PARA PILHA E WATCHDOG-------------------

          MOV       #0x0400,SP          ;INICIALIZA PILHA
                                                         ;PRIMEIRO ENDERECO APOS O FIM DA RAM
                                        
          MOV       #WDTPW|WDTHOLD,&WDTCTL ;PARA O FUNCIONAMENTO DO WATCHDOG
          
;-------------------CONFIGURA PINOS DE ENTRADA E SAIDA--------------------------          
                                        
          MOV.B     #0x50,&P1DIR        ;SELECIONA A DIRECAO DOS PINOS DO PORT1
                                                             ;PORTAS P1.0,.1,.2,.3,.5 E .6 SAO ENTRADAS
                                                             ;AS DEMAIS SAO CONFIGURADAS COMO SAIDA                                        
          MOV.B     #0xAF,&P1IE           ;HABILITA INTERRUPCAO NOS PINOS DE ENTRADA                                        
          MOV.B     #0xAF,&P1REN      ;HABILITA O PULL/U-PULL/DOWN DAS ENTRADAS

          MOV.B     #0x40,&P1SEL       ;CONFIG PINO 14 COMO SAIDA DO TA0.1
          
;-------------------CONFIGURA TIMER_A-------------------------------------------         
                    
          BIS       #MC_1,&TACTL        ;CONFIGURA MODO DE CONTAGEM COMO UP
          BIS       #TASSEL_2,&TACTL    ;CONFIGURA FONTE DE CLOCK O SMCLK
          MOV       #OUTMOD_3,&TACCTL1  ;CONFIGURA MODO DE SAIDA DO CANAL 1
          MOV       #0xFFFE,&TACCR0     ;CONFIGURA FAIXA LIMITE DE CONTAGEM
                                                                  ;COM O VALOR MAXIMO DE 16 BITS                              
          MOV       #0x0000,&TACCR1
                                        
;-------------------CONFIGURA CONVERSOR ANALOGICO DIGITAL-----------------------

          BIS       #ADC10SSEL_3,&ADC10CTL1                              
          BIS       #ADC10SHT_2,&ADC10CTL0
                                                                    ;DEFINE TEMPO DE AMOSTRAGEM 16 CICLOS DE ADC10CLK
          BIS       #ADC10ON,&ADC10CTL0 ;LIGA CONVERSOR ANALOGICO
          BIS       #ADC10IE,&ADC10CTL0 ;HABILITA INTERRUPCAO DO CONVERSOR
          BIS       #INCH_5,&ADC10CTL1  ;DEFINE PORTA A5 COMO CANAL DE ENTRADA
          MOV.B     #BIT5,&ADC10AE0     ;HABILITA PINO A5 COMO CANAL DE ENTRADA
          
;-------------------LOOP INFINITO-----------------------------------------------          
LOOP      
          MOV       #0,&TACCR1
          BIS       #GIE,SR             ;HABILITA INTERRUPCOES MASCARAVEIS
          BIS       #CPUOFF,SR          ;COLOCA DISPOSITIVO EM MODO DE BAIXO CONSUMO
          JMP       LOOP

;-------------------ISR DO PINO ANALOGICO---------------------------------------
CONVERSAO
          MOV       #0x03FF,&TACCR0     ;CONFIGURA FAIXA LIMITE DE CONTAGEM
                                        ;COM O VALOR MAXIMO DE 16 BITS

          BIT.B     #BIT7,&P1IN         ;TESTA O BIT QUE INDICA O MODO DE CONTROLE
          JZ        SAIDA_P             ;SE EH ZERO SAI DA FUNCAO, POIS O MODO
                                        ;SELECIONADO EH O DE CONTROLE POR CHAVES
                                        
          BIS       #ENC,&ADC10CTL0     ;HABILITA CONVERSAO ANALOGICO DIGITAL
          BIS       #ADC10SC,&ADC10CTL0 ;INICIALIZA CONVERSAO          
                   
          MOV       #0,R4               
          MOV       &ADC10MEM,R4
          
          CMP       #0,R4
          JEQ       DESLIGA_P
         
          CMP       #3,R4
          JLO       FAIXA1_P
         
          CMP       #5,R4
          JLO       FAIXA2_P
         
          CMP       #7,R4
          JLO       FAIXA3_P
         
          CMP       #9,R4
          JLO       FAIXA4_P
         
          CMP       #11,R4
          JLO       MAX_P
                   
DESLIGA_P
          MOV       #0x03FF,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA_P
        
FAIXA1_P
          MOV       #0x0333,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA_P
        
FAIXA2_P
          MOV       #0x0267,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA_P
        
FAIXA3_P
          MOV       #0x019B,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA_P
        
FAIXA4_P
          MOV       #0x00CC,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA_P
        
MAX_P
          MOV       #0x0000,&TACCR1
          MOV.B     #0,&P1IFG
        
SAIDA_P
          RETI
          
;-------------------ISR DAS CHAVES----------------------------------------------
CHAVES
          MOV       #0xFFFE,&TACCR0     ;CONFIGURA FAIXA LIMITE DE CONTAGEM
                                        ;COM O VALOR MAXIMO DE 16 BITS

          BIT.B     #BIT7,&P1IN         ;TESTA O BIT QUE INDICA O MODO DE CONTROLE
          JNZ       SAIDA               ;SENAO EH ZERO SAI DA FUNCAO, POIS O MODO
                                        ;SELECIONADO EH O DE CONTROLE POR POTENCIOMETRO
          
          MOV       #0,R4               
          MOV.B     &P1IN,R4
          
          CMP       #0,R4
          JEQ       DESLIGA
         
          CMP       #4,R4
          JLO       FAIXA1
         
          CMP       #7,R4
          JLO       FAIXA2
         
          CMP       #10,R4
          JLO       FAIXA3
         
          CMP       #13,R4
          JLO       FAIXA4
         
          CMP       #16,R4
          JLO       MAX
                   
DESLIGA
          MOV       #0xFFFF,&TACCR1
          MOV.B     #0,&P1IFG
          JMP        SAIDA
        
FAIXA1
          MOV       #0xCCCC,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA
        
FAIXA2
          MOV       #0x9999,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA
        
FAIXA3
          MOV       #0x6666,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA
        
FAIXA4
          MOV       #0x3333,&TACCR1
          MOV.B     #0,&P1IFG
          JMP       SAIDA
        
MAX
          MOV       #0x0000,&TACCR1
          MOV.B     #0,&P1IFG
        
SAIDA
          RETI
          
;-------------------ENDERECAMENTO DAS INTERRUPCOES------------------------------

          ORG       0xFFFE              ;END. DE INTERRUPCAO DE RESET
          DW        RESET               ;LABEL DA ISR DE RESET
          
          ORG       0xFFEA              ;END. DE INTERRUPCAO DO ADC10
          DW        CONVERSAO           ;LABEL DA ISR DE CONVERSAO ANALOGICO/DIGITAL
          
          ORG       0xFFE4              ;END. DE INTERRUPCAO DO PORT1
          DW        CHAVES              ;LABEL DA ISR DE ENTRADA DAS CHAVES
          
          END                           ;FIM DA COMPILACAO

thanks

**Attention** This is a public forum