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.

[参考译文] CCS/MSP430G2553:MSP430G2231至 MSP430G2553转换

Guru**** 2391415 points
Other Parts Discussed in Thread: MSP430G2231

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/msp-low-power-microcontrollers-group/msp430/f/msp-low-power-microcontroller-forum/693924/ccs-msp430g2553-msp430g2231-to-msp430g2553-conversion

器件型号:MSP430G2553
主题中讨论的其他器件:MSP430G2231

工具/软件:Code Composer Studio

我找到了 msp430G2231的这个代码、它在2553中未按预期运行。 我需要进行任何更改吗?

#include "msp430.h"

#define ADC_CHANNELS 2.

unsigned int samples[ADC_channels];

#define LED1 BIT4

#define LED2 BIT6

#define SENSOR_LEFT BIT0

#define SENSOR_GND BIT2

#define SENSOR_RIGHT BIT1

#define SENSOR_GND1 BIT3

#define RED_LED LED1

#define GRN_LED LED2

void ConfigureAdc (void){

ADC10CTL1 = INCH_1 | ADC10DIV_0 | CONSEQ_3 | SHS_0;

ADC10CTL0 = SREF_0 | ADC10SHT_2 | MSC | ADC10ON | ADC10IE;

ADC10AE0 =SENSOR_LEFT + SENSOR_RIGHT;

ADC10DTC1 = ADC_CHANNELS;

void main (void){

WDTCTL = WDTPW | WDTHOLD;

BCSCTL1 = CALBC1_1MHz;

DCOCTL = CALDCO_1MHz;

BCSCTL2 &=~(DIVS_3);

P1DIR = 0;//设置为输入*/

P1SEL = 0;//设置为数字 I/O *

P1OUT = 0;//将电阻器设置为下拉电阻器*/

P1REN = 0xFF;/*启用下拉电阻器*/

P2DIR = 0;//设置为输入*/

P2SEL = 0;//设置为数字 I/O *

P2OUT = 0;//将电阻设置为下拉电阻器*/

P2REN = 0xFF;/*启用下拉电阻器*/

P1REN &=~(LED1 | LED2);/*禁用上拉/下拉电阻器*/

P1DIR |=(LED1 | LED2);/*配置为输出*/

P1REN &=~(SENSOR_GND |SENSOR_GND1);/*禁用上拉/下拉*/

P1OUT &=~Ω(SENSOR_GND|SENSOR_GND);/* SENSOR_GND 应位于 GND *

P1DIR |=(SENSOR_GND |SENSOR_GND1);/* SENSOR_GND 必须为输出*/

P1REN |=(SENSOR_LEFT|SENSOR_RIGHT);/*启用传感器上的上拉*

P1IN |=(SENSOR_LEFT|SENSOR_RIGHT);//将电阻器设置为上拉电阻器*/

ConfigureAdc();

_enable_interrupt ();

while (1){

_DELAY_CYCLES (1000);

ADC10CTL0 &=~ENC;

while (ADC10CTL1 & BUSY);

ADC10SA =(无符号 int)样本;

ADC10CTL0 |= ENC + ADC10SC;

_bis_SR_register (CPUOFF + GIE);

if (samples[0]< samples[1]){

P1OUT |=RED_LED;

P1OUT &=~Ω(GRN_LED);

}否则、如果(samples[0]= samples[1]){

P1OUT &=~(RED_LED);

P1OUT &=~Ω(GRN_LED);

}否则{

P1OUT |= GRN_LED;

P1OUT &=~(RED_LED);

#pragma vector=ADC10_vector

_interrupt void ADC10_ISR (void){

_BIC_SR_REGISTER_ON_EXIT (CPUOFF);

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Ernesto、

    您的代码无法读取。
    请使用"插入代码、附加文件等..." 以插入您的代码。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    其内容如下: 
    
    
    #include "msp430.h"
    
    #define ADC_CHANNELS 2
    
    unsigned int Samples[ADC_CHANNELS];
    
    #define LED1 BIT4
    
    #define LED2 BIT6
    
    #define SENSOR_LEFT BIT2
    
    #define SENSOR_GND BIT2
    
    #define SENSOR_RIGHT BIT1
    
    #define SENSOR_GND1 BIT3
    
    #define RELED1 #define RELED1 #define RELED1
    
    | ADC10_LED
    
    = ADC100 = CONVER_IN_LEC 0 | ADC100 = ADC100 = ADCK_0 = ADC100 = ADCON_IN_INCH 0
    
    
    
    ADC10CTL0 = SREF_0 | ADC10SHT_2 | MSC | ADC10ON | ADC10IE;
    
    ADC10AE0 = SENSOR_LEFT + SENSOR_RIGHT;
    
    ADC10DTC1 = ADC_CHANNELS;
    
    }
    
    void main (void){
    
    WDTCTL = WDTPW | WDTHOLD;
    
    ADC10TL1 = CALBC1_1MHZ
    
    
    
    ;DCO = CASCBCO_1MHZ;DCO = CTDDIO = CTD0 ~
    
    = CTDLDC1MHZ;DCO = CTDCL_1MHZ;DCO = CTDCO_1MDIO = //*设置为输入*/
    
    P1SEL = 0;//*设置为数字 I/O */
    
    P1OUT = 0;//将电阻设置为下拉电阻*/
    
    P1REN = 0xFF;//启用下拉电阻器*/
    
    P2DIR = 0;//*设置为输入*/
    
    P2SEL = 0; //设置为数字 I/O */
    
    P2OUT = 0;//将电阻器设置为下拉电阻器*/
    
    P2REN = 0xFF;//启用下拉电阻器*/
    
    P1REN &=~(LED1 | LED2);//禁用上拉/下拉*/
    
    P1DIR |=(LED1 | LED2);//将 P1REFON_SENSOR
    
    |GND1 =~ /*禁用上拉/下拉*/
    
    P1OUT &=~(SENSOR_GND|SENSOR_GND);/* SENSOR_GND 应位于 GND */
    
    P1DIR |=(SENSOR_GND |SENSOR_GND1);/* SENSOR_GND 必须为输出*/
    
    P1REN |=(SENSOR_LEFT|SENSOR_RIGHT);/* SENSOR_PUMPLEUTRUMER 1IN|SENSOR_PUT
    
    (
    
    
    
    
    
    *1) SENSOR_PUT (*SENSOR_PUMPLEON_PUT);/RESTON_PUT (*SENSOR_RESP1000
    
    ) SENSOR_TRUTRUMER UTRUMER 1)(*/ SENSOR_RESPON
    
    ADC10CTL0 &=~ENC;
    
    while (ADC10CTL1 & BUSY);
    
    ADC10OUT SA =(无符号 int)样本;
    
    ADC10OUT CTL0 |= ENC + ADC10SC;
    
    __bis_SR_register (CPUOFF + GIE);
    
    if (samples[0]< samples[1]){
    
    P1OUT |=red_LED
    
    
    
    (samples=~);
    
    
    
    
    
    = P1GRLED (els=1);=~ P1N = P1GRLED (els=1);=~ P1N = P1GRLED);= P1GRLED (1)=(1)= P1N = 1);= P1GRLED (P1OUT
    
    =(P1OUT = 1)(P1N);
    
    P1OUT &=~(RED_LED);
    
    }
    
    
    
    }
    
    #pragma vector=ADC10_vector
    
    __interrupt void ADC10_ISR (void){
    
    __BIC_SR_REGISTER_ON_EXIT (CPUOFF);
    
    }
    

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您的源代码中是否没有缩进?