2236|2

447

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

求 430 RTC 例程 [复制链接]

请问谁有430RTC这一块的例程,麻烦上传一下,谢啦~

最新回复

//****************************************************************************** //  MSP430FR59xx Demo - RTC in real time clock mode // //  Description: This program demonstrates the RTC mode by triggering an //  interrupt every second and minute. This code toggles P1.0 every second. //  This code recommends an external LFXT crystal for RTC accuracy. //  ACLK = LFXT = 32768Hz, MCLK = SMCLK = default DCO = 1MHz // //                MSP430FR5969 //             ----------------- //        /|\ |              XIN|- //         |  |                 | 32768Hz //         ---|RST          XOUT|- //            |                 | //            |            P1.0 |--> Toggles every second //            |                 | // //   William Goh //   Texas Instruments Inc. //   August 2014 //   Built with IAR Embedded Workbench V5.60 & Code Composer Studio V6.0 //****************************************************************************** #include int main(void) {     WDTCTL = WDTPW | WDTHOLD;               // Stop Watchdog Timer     P1DIR |= BIT0;                          // Set P1.0 as output     PJSEL0 = BIT4 | BIT5;                   // Initialize LFXT pins     // Disable the GPIO power-on default high-impedance mode to activate     // previously configured port settings     PM5CTL0 &= ~LOCKLPM5;     // Configure LFXT 32kHz crystal     CSCTL0_H = CSKEY >> 8;                  // Unlock CS registers     CSCTL4 &= ~LFXTOFF;                     // Enable LFXT     do     {       CSCTL5 &= ~LFXTOFFG;                  // Clear LFXT fault flag       SFRIFG1 &= ~OFIFG;     } while (SFRIFG1 & OFIFG);              // Test oscillator fault flag     CSCTL0_H = 0;                           // Lock CS registers     // Configure RTC_C     RTCCTL01 = RTCTEVIE | RTCRDYIE | RTCBCD | RTCHOLD;                                             // RTC enable, BCD mode, RTC hold                                             // enable RTC read ready interrupt                                             // enable RTC time event interrupt     RTCYEAR = 0x2010;                       // Year = 0x2010     RTCMON = 0x4;                           // Month = 0x04 = April     RTCDAY = 0x05;                          // Day = 0x05 = 5th     RTCDOW = 0x01;                          // Day of week = 0x01 = Monday     RTCHOUR = 0x10;                         // Hour = 0x10     RTCMIN = 0x32;                          // Minute = 0x32     RTCSEC = 0x45;                          // Seconds = 0x45     RTCADOWDAY = 0x2;                       // RTC Day of week alarm = 0x2     RTCADAY = 0x20;                         // RTC Day Alarm = 0x20     RTCAHOUR = 0x10;                        // RTC Hour Alarm     RTCAMIN = 0x23;                         // RTC Minute Alarm     RTCCTL01 &= ~(RTCHOLD);                 // Start RTC     __bis_SR_register(LPM3_bits | GIE);     // Enter LPM3 mode w/ interrupts enabled     __no_operation();     return 0; } #if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__) #pragma vector=RTC_VECTOR __interrupt void RTC_ISR(void) #elif defined(__GNUC__) void __attribute__ ((interrupt(RTC_VECTOR))) RTC_ISR (void) #else #error Compiler not supported! #endif {     switch(__even_in_range(RTCIV, RTCIV_RT1PSIFG))     {         case RTCIV_NONE:      break;        // No interrupts         case RTCIV_RTCOFIFG:  break;        // RTCOFIFG         case RTCIV_RTCRDYIFG:               // RTCRDYIFG             P1OUT ^= 0x01;                  // Toggles P1.0 every second             break;         case RTCIV_RTCTEVIFG:               // RTCEVIFG             __no_operation();               // Interrupts every minute             break;         case RTCIV_RTCAIFG:   break;        // RTCAIFG         case RTCIV_RT0PSIFG:  break;        // RT0PSIFG         case RTCIV_RT1PSIFG:  break;        // RT1PSIFG         default: break;     } }   详情 回复 发表于 2014-12-22 15:34
 
点赞 关注

回复
举报

3415

帖子

0

TA的资源

纯净的硅(高级)

沙发
 
没有
ASF里面應該不少吧
 
个人签名

So TM what......?

 


回复

1万

帖子

25

TA的资源

裸片初长成(高级)

板凳
 
//******************************************************************************
//  MSP430FR59xx Demo - RTC in real time clock mode
//
//  Description: This program demonstrates the RTC mode by triggering an
//  interrupt every second and minute. This code toggles P1.0 every second.
//  This code recommends an external LFXT crystal for RTC accuracy.
//  ACLK = LFXT = 32768Hz, MCLK = SMCLK = default DCO = 1MHz
//
//                MSP430FR5969
//             -----------------
//        /|\ |              XIN|-
//         |  |                 | 32768Hz
//         ---|RST          XOUT|-
//            |                 |
//            |            P1.0 |--> Toggles every second
//            |                 |
//
//   William Goh
//   Texas Instruments Inc.
//   August 2014
//   Built with IAR Embedded Workbench V5.60 & Code Composer Studio V6.0
//******************************************************************************

#include

int main(void)
{
    WDTCTL = WDTPW | WDTHOLD;               // Stop Watchdog Timer

    P1DIR |= BIT0;                          // Set P1.0 as output

    PJSEL0 = BIT4 | BIT5;                   // Initialize LFXT pins

    // Disable the GPIO power-on default high-impedance mode to activate
    // previously configured port settings
    PM5CTL0 &= ~LOCKLPM5;

    // Configure LFXT 32kHz crystal
    CSCTL0_H = CSKEY >> 8;                  // Unlock CS registers
    CSCTL4 &= ~LFXTOFF;                     // Enable LFXT
    do
    {
      CSCTL5 &= ~LFXTOFFG;                  // Clear LFXT fault flag
      SFRIFG1 &= ~OFIFG;
    } while (SFRIFG1 & OFIFG);              // Test oscillator fault flag
    CSCTL0_H = 0;                           // Lock CS registers

    // Configure RTC_C
    RTCCTL01 = RTCTEVIE | RTCRDYIE | RTCBCD | RTCHOLD;
                                            // RTC enable, BCD mode, RTC hold
                                            // enable RTC read ready interrupt
                                            // enable RTC time event interrupt

    RTCYEAR = 0x2010;                       // Year = 0x2010
    RTCMON = 0x4;                           // Month = 0x04 = April
    RTCDAY = 0x05;                          // Day = 0x05 = 5th
    RTCDOW = 0x01;                          // Day of week = 0x01 = Monday
    RTCHOUR = 0x10;                         // Hour = 0x10
    RTCMIN = 0x32;                          // Minute = 0x32
    RTCSEC = 0x45;                          // Seconds = 0x45

    RTCADOWDAY = 0x2;                       // RTC Day of week alarm = 0x2
    RTCADAY = 0x20;                         // RTC Day Alarm = 0x20
    RTCAHOUR = 0x10;                        // RTC Hour Alarm
    RTCAMIN = 0x23;                         // RTC Minute Alarm

    RTCCTL01 &= ~(RTCHOLD);                 // Start RTC

    __bis_SR_register(LPM3_bits | GIE);     // Enter LPM3 mode w/ interrupts enabled
    __no_operation();

    return 0;
}

#if defined(__TI_COMPILER_VERSION__) || defined(__IAR_SYSTEMS_ICC__)
#pragma vector=RTC_VECTOR
__interrupt void RTC_ISR(void)
#elif defined(__GNUC__)
void __attribute__ ((interrupt(RTC_VECTOR))) RTC_ISR (void)
#else
#error Compiler not supported!
#endif
{
    switch(__even_in_range(RTCIV, RTCIV_RT1PSIFG))
    {
        case RTCIV_NONE:      break;        // No interrupts
        case RTCIV_RTCOFIFG:  break;        // RTCOFIFG
        case RTCIV_RTCRDYIFG:               // RTCRDYIFG
            P1OUT ^= 0x01;                  // Toggles P1.0 every second
            break;
        case RTCIV_RTCTEVIFG:               // RTCEVIFG
            __no_operation();               // Interrupts every minute
            break;
        case RTCIV_RTCAIFG:   break;        // RTCAIFG
        case RTCIV_RT0PSIFG:  break;        // RT0PSIFG
        case RTCIV_RT1PSIFG:  break;        // RT1PSIFG
        default: break;
    }
}
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条
艾睿电子& Silicon Labs 有奖直播 | 全新蓝牙信道探测:从技术创新到实际应用
直播时间:3月12日(周三)上午10:00
直播奖励:多功能榨汁机、蓝牙音箱、手机支架

查看 »

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表