[C10] Thắc mắc PWM cho P2.6

daothanhhoa993

Thành Viên PIF
Code:
#include <msp430g2553.h>
 
void main()
{
    WDTCTL = WDTHOLD + WDTPW;    // Stop watchdog timer
    P2DIR |= BIT6;        // Chon chuc nang TA0.1 cho chan P1.6
    P2SEL &= ~BIT6;
    P2SEL2 &= ~BIT6;
    // Setup timer1
    while(1)
    {
    TA0CTL |= TASSEL_0 + MC_1;
    TA0CCTL1 = OUTMOD_3;
    TA0CCR0 = 1000;
    TA0CCR1 = 1000;
 
    __delay_cycles(700000);
    TA0CCR1 = 600;
    __delay_cycles(700000);
    TA0CCR1 = 400;
    __delay_cycles(700000);
    TA0CCR1 = 0;
    _bis_SR_register(LPM0_bits);
    }
}
mấy anh chị vô xem giúp e với...k piết là sai hay thiếu gì mà PWM cho P2.6 k được,còn lại các chân khác thì ok hết...dùng timer delay cho P2.6 thì vẫn ok..chỉ mỗi cái PWM là k được :-(
 

MMKC

Thành Viên PIF
https://www.dropbox.com/s/dcjsh4vrepyh4ms/up.JPG
Có lẽ em lầm trong cách Config P2.6
Muốn gọi chức năng khác của chân GPIO thì em chỉnh PXSEL và PxSEL2
Em có thể download thêm 2 phần này ngoai2 việc đọc Datasheet MSP430G2553
Hình này a trích từ tài liệu này
https://www.dropbox.com/s/euz2njcevtne026/msp430g2553.pdf
Hình tổng quát về MSP430g2553 do bên Energia cung cấp

https://www.dropbox.com/s/xovkazbcq96abl8/LaunchPad%20MSP430G2553-V1.5.jpg

Forum không upload hình đc. ta :D
 

daothanhhoa993

Thành Viên PIF
https://www.dropbox.com/s/dcjsh4vrepyh4ms/up.JPG
Có lẽ em lầm trong cách Config P2.6
Muốn gọi chức năng khác của chân GPIO thì em chỉnh PXSEL và PxSEL2
Em có thể download thêm 2 phần này ngoai2 việc đọc Datasheet MSP430G2553
Hình này a trích từ tài liệu này
https://www.dropbox.com/s/euz2njcevtne026/msp430g2553.pdf
Hình tổng quát về MSP430g2553 do bên Energia cung cấp

https://www.dropbox.com/s/xovkazbcq96abl8/LaunchPad MSP430G2553-V1.5.jpg

Forum không upload hình đc. ta :D
đã chỉnh sửa lại P2DIR |=BIT6; P2SEL |=BIT6; P2SEL2 &=~BIT6 mà vẫn k được :5cool_beat_plaster:
 
đã chỉnh sửa lại P2DIR |=BIT6; P2SEL |=BIT6; P2SEL2 &=~BIT6 mà vẫn k được :5cool_beat_plaster:
Em mở lại datasheet, xem trang 53 để biết config các chân PxSEL thế nào nhé. Phần cuối datasheet là nói rõ nhất về function selection cho GPIO đó.

Ngoài ra em có thể làm rõ đoạn code trong vòng lặp while(1) hơn được không:
Code:
#include <msp430g2553.h>
 
void main()
{
    WDTCTL = WDTHOLD + WDTPW;    // Stop watchdog timer
    P2DIR |= BIT6;        // Chon chuc nang TA0.1 cho chan P1.6
    P2SEL &= ~BIT6;
    P2SEL2 &= ~BIT6;
    // Setup timer1
    while(1)
    {
    TA0CTL |= TASSEL_0 + MC_1;
    TA0CCTL1 = OUTMOD_3;
    TA0CCR0 = 1000;
    TA0CCR1 = 1000;
 
    __delay_cycles(700000);
    TA0CCR1 = 600;
    __delay_cycles(700000);
    TA0CCR1 = 400;
    __delay_cycles(700000);
    TA0CCR1 = 0;
    _bis_SR_register(LPM0_bits);
    }
}
Nhớ trình bày mạch lạc rõ ràng, xuống hàng gạch đầu dòng hoặc dùng ký hiệu "->" cho dễ nhìn.
 

daothanhhoa993

Thành Viên PIF
đã chỉnh sửa lại P2DIR |=BIT6; P2SEL |=BIT6; P2SEL2 &=~BIT6 mà vẫn k được :5cool_beat_plaster:
Em mở lại datasheet, xem trang 53 để biết config các chân PxSEL thế nào nhé. Phần cuối datasheet là nói rõ nhất về function selection cho GPIO đó.

Ngoài ra em có thể làm rõ đoạn code trong vòng lặp while(1) hơn được không:
Code:
#include <msp430g2553.h>
 
void main()
{
    WDTCTL = WDTHOLD + WDTPW;    // Stop watchdog timer
    P2DIR |= BIT6;        // Chon chuc nang TA0.1 cho chan P1.6
    P2SEL &= ~BIT6;
    P2SEL2 &= ~BIT6;
    // Setup timer1
    while(1)
    {
    TA0CTL |= TASSEL_0 + MC_1;
    TA0CCTL1 = OUTMOD_3;
    TA0CCR0 = 1000;
    TA0CCR1 = 1000;
 
    __delay_cycles(700000);
    TA0CCR1 = 600;
    __delay_cycles(700000);
    TA0CCR1 = 400;
    __delay_cycles(700000);
    TA0CCR1 = 0;
    _bis_SR_register(LPM0_bits);
    }
}
Nhớ trình bày mạch lạc rõ ràng, xuống hàng gạch đầu dòng hoặc dùng ký hiệu "->" cho dễ nhìn.
ủa e config theo datasheet rồi mà a...:-( https://dl-web.dropbox.com/get/Untitled.png?w=AABYpJA5Bc6jvSnI2hS2YV6GsswTTn3l3ebOGeTtQ98EnA
 

honghiep

Cố Vấn CLB
Staff member
Bạn lưu ý với 2 chân P2.6 và P2.7. Đây là 2 chân thạch anh, mặc định khi reset nó không được set chức năng GPIO.
Vì là 2 chân thạch anh nên nếu bạn để ý kĩ datasheet (trang 53) sẽ thấy 2 chân này luôn được config đồng thời

Khi muốn set chức năng khác cũng cần config đồng thời 2 chân này
 
Top