Перейти к содержанию
    

Помогите новичку)

Имеется программа для мигания светодиодом по нажатии кнопки.Нужно с помощью аппаратного шима изменить яркость светодиода до половины обычной яркости.Перерыл кучу форумов и не нашел хоть маленькой толики информации)Вы моя последняя надежда.

P.S.вот программа

/*

* main.c

*/

#include "MSP430G2231.h"

void main(void)

{WDTCTL = WDTPW + WDTHOLD;

P1DIR=0x01;

 

while (1)

{

if (!(P1IN&(1<<3)))

{

P1OUT|=1;

 

 

}

else

{

P1OUT&=~1;

 

}

 

 

 

}

 

 

 

}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Поиск на техасах глючит ... Непомню точно как документ называется поэтому copy-paste

 

вот... ещё здесь есть...

 

//******************************************************************************
//  MSP430F22x4 Demo - Timer_B, PWM TB1-2, Up Mode, DCO SMCLK
//
//  Description: This program generates two PWM outputs on P4.1-2 using
//  Timer_B configured for up mode. The value in TBCCR0, 512-1, defines the PWM
//  period and the values in TBCCR1-2 the PWM duty cycles. Using ~1.2MHz SMCLK
//  as TBCLK, the timer period is ~425us.
//  ACLK = n/a, MCLK = SMCLK = TBCLK = default DCO ~1.2MHz
//
//               MSP430F22x4
//            -----------------
//        /|\|              XIN|-
//         | |                 |
//         --|RST          XOUT|-
//           |                 |
//           |         P4.1/TB1|--> TBCCR1 - 75% PWM
//           |         P4.2/TB2|--> TBCCR2 - 25% PWM
//
//  A. Dannenberg
//  Texas Instruments Inc.
//  April 2006
//  Built with CCE Version: 3.2.0 and IAR Embedded Workbench Version: 3.41A
//******************************************************************************
#include "msp430x22x4.h"

void main(void)
{
  WDTCTL = WDTPW + WDTHOLD;                 // Stop WDT
  P4DIR |= 0x06;                            // P4.1 - P4.2 output
  P4SEL |= 0x06;                            // P4.1 - P4.2 TBx options
  TBCCR0 = 512 - 1;                         // PWM Period
  TBCCTL1 = OUTMOD_7;                       // TBCCR1 reset/set
  TBCCR1 = 384;                             // TBCCR1 PWM duty cycle
  TBCCTL2 = OUTMOD_7;
  TBCCR2 = 128;
  TBCTL = TBSSEL_2 + MC_1;                  // SMCLK, up mode

  __bis_SR_register(CPUOFF);                // Enter LPM0
}

 

А ещё можете русским по белому почитать правда по 1ой серии здесь

Изменено пользователем hash20

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...