欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2174|回復: 0
收起左側

SPCE061A學習筆記—系統時鐘設置引發的血案

[復制鏈接]
ID:128229 發表于 2016-6-29 14:58 | 顯示全部樓層 |閱讀模式
今天嘗試點亮led,發現點亮一點時間后周期會變長,搗鼓了半天,終于找出問題所在,下面一段文字摘自資料原文:
        此外,32768Hz RTC 振蕩器有兩種工作方式:強振模式和自動弱振模式。處于強振模式時,
RTC 振蕩器始終運行在高耗能的狀態下。處于自動弱振模式時,系統在上電復位后的前7.5s 內
處于強振模式,然后自動切換到弱振模式以降低功耗。CPU 被喚醒后默認的時鐘頻率為Fosc/8,
用戶可以根據需要調整該值。CPU 被喚醒后經過32 個時鐘周期的緩沖時間后再進行其它的操作,
這樣可以避免在系統被喚醒后造成ROM讀取錯誤。
















注意以上文字中的"處于自動弱振模式時,系統在上電復位后的前7.5s 內
處于強振模式,然后自動切換到弱振模式以降低功耗。",這就是為什么開機一段時間后點亮頻率會降低的原因了,這段過渡時間剛好在7.5S左右。
結合插圖可以看出,*P_SystemClock必須預先設置好,使CPU始終處于強振狀態,才能確保芯片按照預期效果正常工作。
下面給出源程序
//main.c
#include"SPCE061A.h"
#defineuchar unsigned char
void delay1ms()
{
   unsigned char i;   
     for(i = 0; i <70; i++)
     *P_Watchdog_Clear =   0x0001;    //清看門狗     
}
void delaynms(unsigned int n)
{
unsigned char i;
for(i=0;i<n;i++)
delay1ms();   
}

void main()
{
//add your code here
unsigned int i;
*P_SystemClock=0x000b;           //fosc=24768khz,CPUClok=fosc/8 ,強振狀態,睡眠狀態下晶振仍然工作
*P_IOA_Data = 0x0000;            //設置IOA0 ~IOA15 端口為帶下拉的低電平輸入
*P_IOA_Dir = 0xffff;             //工作方向為輸出
*P_IOA_Attrib = 0xffff;          //同相輸出,即給1出1,給0出0
*P_IOB_Data= 0xffff;             //設置IOB0~IOB15 端口為帶數據緩存的高電平輸出
*P_IOB_Dir = 0xffff;             //工作方向為輸出
*P_IOB_Attrib = 0xffff;          //同相輸出

while(1)
{
for(i=0;i<8;i++)
{
*P_IOB_Data  =  0x0001<<i;     //IOB 端口輸出高電平,點亮發光二極管,并保持一段時間
delaynms(1000);
}            
}  

}





回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表