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