娇小w搡bbbb搡bbb,《第一次の人妻》,中国成熟妇女毛茸茸,边啃奶头边躁狠狠躁视频免费观看

歷史上的今天

今天是:2024年09月16日(星期一)

2019年09月16日 | 中斷-timer0

發布者:legend9 來源: eefocus關鍵字:中斷  timer0  S3C2410 手機看文章 掃描二維碼
隨時隨地手機看文章

使用timer0中斷,將LED燈閃爍


Init.c

/*

 * init.c: 進行一些初始化

 */ 

 

#include "s3c24xx.h"

 

void disable_watch_dog(void);

void clock_init(void);

void memsetup(void);

void copy_steppingstone_to_sdram(void);

void init_led(void);

void timer0_init(void);

void init_irq(void);

void delay(int n)

{

int i; 

for(i=0;i 

}

/*

 * 關閉WATCHDOG,否則CPU會不斷重啟

 */

void disable_watch_dog(void)

{

    // 關閉WATCHDOG很簡單,往WTCON寄存器寫0即可

    WTCON = 0;

}

 

#define S3C2410_MPLL_200MHZ     ((0x5c<<12)|(0x04<<4)|(0x00))

#define S3C2440_MPLL_200MHZ     ((0x5c<<12)|(0x01<<4)|(0x02))

/*

 * 對于MPLLCON寄存器,[19:12]為MDIV,[9:4]為PDIV,[1:0]為SDIV

 * 有如下計算公式:

 *  S3C2410: MPLL(FCLK) = (m * Fin)/(p * 2^s)

 *  S3C2410: MPLL(FCLK) = (2 * m * Fin)/(p * 2^s)

 *  其中: m = MDIV + 8, p = PDIV + 2, s = SDIV

 * 對于本開發板,Fin = 12MHz

 * 設置CLKDIVN,令分頻比為:FCLK:HCLK:PCLK=1:2:4,

 * FCLK=200MHz,HCLK=100MHz,PCLK=50MHz

 */

void clock_init(void)

{

    // LOCKTIME = 0x00ffffff;   // 使用默認值即可

    CLKDIVN  = 0x03;            // FCLK:HCLK:PCLK=1:2:4, HDIVN=1,PDIVN=1

 

    /* 如果HDIVN非0,CPU的總線模式應該從“fast bus mode”變為“asynchronous bus mode” */

__asm__(

    "mrc    p15, 0, r1, c1, c0, 0n"        /* 讀出控制寄存器 */ 

    "orr    r1, r1, #0xc0000000n"          /* 設置為“asynchronous bus mode” */

    "mcr    p15, 0, r1, c1, c0, 0n"        /* 寫入控制寄存器 */

    );

 

    /* 判斷是S3C2410還是S3C2440 */

    if ((GSTATUS1 == 0x32410000) || (GSTATUS1 == 0x32410002))

    {

        MPLLCON = S3C2410_MPLL_200MHZ;  /* 現在,FCLK=200MHz,HCLK=100MHz,PCLK=50MHz */

    }

    else

    {

        MPLLCON = S3C2440_MPLL_200MHZ;  /* 現在,FCLK=200MHz,HCLK=100MHz,PCLK=50MHz */

    }       

}

 

/*

 * 設置存儲控制器以使用SDRAM

 */

void memsetup(void)

{

    volatile unsigned long *p = (volatile unsigned long *)MEM_CTL_BASE;

 

    /* 這個函數之所以這樣賦值,而不是像前面的實驗(比如mmu實驗)那樣將配置值

     * 寫在數組中,是因為要生成”位置無關的代碼”,使得這個函數可以在被復制到

     * SDRAM之前就可以在steppingstone中運行

     ,steppingstone是在S3C2440 中,實際上是一塊4k大小的SRAM

     */

    /* 存儲控制器13個寄存器的值 */

    p[0] = 0x22011110;     //BWSCON

    p[1] = 0x00000700;     //BANKCON0

    p[2] = 0x00000700;     //BANKCON1

    p[3] = 0x00000700;     //BANKCON2

    p[4] = 0x00000700;     //BANKCON3  

    p[5] = 0x00000700;     //BANKCON4

    p[6] = 0x00000700;     //BANKCON5

    p[7] = 0x00018005;     //BANKCON6

    p[8] = 0x00018005;     //BANKCON7

    

    /* REFRESH,

     * HCLK=12MHz:  0x008C07A3,

     * HCLK=100MHz: 0x008C04F4

     */ 

    p[9]  = 0x008C04F4;

    p[10] = 0x000000B1;     //BANKSIZE

    p[11] = 0x00000030;     //MRSRB6

    p[12] = 0x00000030;     //MRSRB7

}

 

void copy_steppingstone_to_sdram(void)

{

    unsigned int *pdwSrc  = (unsigned int *)0;

    unsigned int *pdwDest = (unsigned int *)0x30000000;

    

    while (pdwSrc < (unsigned int *)4096)

    {

        *pdwDest = *pdwSrc;

        pdwDest++;

        pdwSrc++;

    }

}

 

#define GPFCON              (*(volatile unsigned long *)0x56000050)

 

#define GPF4_out (1<<(4*2))

#define GPF5_out (1<<(5*2))

#define GPF6_out (1<<(6*2))

 

 

/*

 * K1-K4對應GPG11、GPG3、GPF2、GPF3

 */

#define GPG11_eint      (2<<(11*2))     // K1,EINT19

#define GPG3_eint       (2<<(3*2))      // K2,EINT11

#define GPF3_eint       (2<<(3*2))      // K3,EINT3

#define GPF2_eint       (2<<(2*2))      // K4,EINT2

 

void init_led(void)

{

GPFCON = GPF4_out|GPF5_out|GPF6_out; // 將LED1,2,4對應的GPF4/5/6三個引腳設為輸出

}

 

/*

 * Timer input clock Frequency = PCLK / {prescaler value+1} / {divider value}

 * {prescaler value} = 0~255

 * {divider value} = 2, 4, 8, 16

 * 本實驗的Timer0的時鐘頻率=100MHz/(99+1)/(16)=62500Hz

 * 設置Timer0 0.5秒鐘觸發一次中斷:

 */

void timer0_init(void)

{

// 預分頻器0 = 99    

TCFG0 &= ~0xFF;

TCFG0 |= 0x63;

// 選擇16分頻

TCFG1 &= ~0x0F;

TCFG1 |= 0x03;

// 0.5秒鐘觸發一次中斷

TCNTB0 = 15625;//設定的計數 次數   遞減

TCMPB0 = 0;//比較,減到這個數

// 手動更新

TCON &= ~(1<<1);

TCON |= 1<<1;

// 自動加載,清“手動更新”位,啟動定時器0

//TCON &= ~0X03;

//TCON |= 0x01;

//TCON |= (3<<0);

TCON &= ~(1<<1);//清“手動更新”位

 

TCON |=(1<<3);//自動加載

 

TCON |=(1<<0);//啟動定時器0

 

}

 

/*

 * 定時器0中斷使能

 */ 

void init_irq(void)

{        

    // 定時器0中斷使能,INTMSK

INTMSK &= ~ (1<<10);//中斷屏蔽寄存器

 

}


Interrupt.c

#include "s3c24xx.h"

int flag=0;

void Timer0_Handle(void)

{

    /*

     * 每次中斷令4個LED改變狀態

     */

     unsigned long oft = INTOFFSET;//讀取中斷偏移量

 

 

//成功的

if(oft==10)//根據偏移量,判斷是不是timer0中斷

{

if(flag==0)

{

GPFDAT &= ~(1<<4|1<<5|1<<6);//亮燈

flag=1;

 

}

else

{

GPFDAT |= (1<<4|1<<5|1<<6);//關燈

flag=0;

}

 

SRCPND=SRCPND;

INTPND=INTPND;

//SRCPND &= ~(1<<10);

//INTPND &= ~(1<<10);

//SRCPND = 0;

//INTPND = 0;

}

 

}


關鍵字:中斷  timer0  S3C2410 引用地址:中斷-timer0

上一篇:存儲-SDRAM
下一篇:S3C2440開發板上BMP圖片的顯示之三

推薦閱讀

展會時間:2019年3月13日- 15日?展會地點:蘇州國際博覽中心B1、C1號館?主辦單位:中國物聯網產業應用聯盟、深圳市智慧零售協會、深圳市連鎖經營協會、深圳市零售商業行業協會?承辦單位:深圳市物聯傳媒有限公司、深圳市易信物聯網絡有限公司、蘇州友智信物聯網絡有限公司?展會官網:www.urexpo.com.cn??同期活動:?展會:第十一屆國際物聯網博覽...
知名EMS企業增設速度高達40萬cph生產線,開創北美本土生產的先河。 加拿大SMT Hautes 科技公司是一家全球EMS代工廠,為了拓展其高速組裝高端復雜電子產品的能力,最近為其在加拿大蒙特利爾的生產基地,增添第七條環球儀器表面貼裝生產線,確保能快速向客戶交貨。 這條生產線主要由環球儀器旗艦平臺Fuzion? 組成,共有三臺Fuzion4-120? ,每臺貼片機...
專注于引入新品并提供海量庫存的電子元器件分銷商貿澤電子 (Mouser Electronics) 宣布推出全新的客戶資源中心,以方便客戶通過此平臺輕松使用貿澤的在線采購服務和工具。在這個平臺上涵蓋客戶優化采購流程所需的各種資源。客戶只需點擊想用的工具名稱,便可輕松查看使用。在這個新的客戶資源中心,客戶可以訪問并學習如何查看或跟蹤訂單、請求技術支持和...
9月14日晚間,天際股份披露前三季度業績預告,公司預計2021年前三季度盈利44000萬元-46000萬元,上年同期為虧損4375.27萬元。報告期,天際股份六氟磷酸鋰產品產銷兩旺,加上銷售價格提升,六氟磷酸鋰業績同比大幅增長。今年來,隨著電池材料六氟磷酸鋰高景氣度的持續演繹,下游產業巨頭接連開始通過長期協議方式形成緊密的供需聯動,破解供應鏈風險。天際...

史海拾趣

問答坊 | AI 解惑

“低功耗創新設計分論壇”報名啦!

尊敬的工程師們:                   如何在設計中平衡功耗與性能?如何將設計變得更簡捷?如何幫助產品更快地投入市場?對工程師而言,這一切都是設計工作中實實在的難題。 &nbs ...…

查看全部問答∨

FPGA時鐘設計方面資料

經典FPGA時鐘設計資料!…

查看全部問答∨

基于Windows CE的移動GIS開發.pdf

基于Windows CE的移動GIS開發.pdf…

查看全部問答∨

求EVC虛擬機漢化解決方法

目前狀態:英文版環境運行正常; 問題定義:建立evc的中文虛擬編譯環境 做過的措施: 1.下載Chinese (Simplified) Emulation Images.msi包,并安裝; 2.project->setting->Resources:"中文"; 未果。 問題猜測:SDK漢化,或其 ...…

查看全部問答∨

關于ril.lib庫的問題

我想使用ril.lib庫達到短信攔截的效果,但是在Notify函數被回調的時候,短信已經進入到了系統收件箱中,并且彈出了短信到達提示。請問有沒有辦法能在短信到達后刪掉該信息,不讓短信進入系統收件箱?(不使用MAPIRULE)謝謝…

查看全部問答∨

轉讓lauterbach的trace32

有一套LA-7707 PowerTrace ,有arm7的頭,14針轉20針的接口。 有興趣的可聯系ggzhao523@sina.cn。…

查看全部問答∨

軟件加密技術 之 序列號要怎么生成啊

達人給講一下軟件加密的整體流程, 然后我最關心的是序列號是怎么產生的? 因為一般用軟件注冊的話,輸個序列號以及注冊碼(注冊碼一般由輸入的序列號以及硬件碼運算而得來的), 但問題是這個序列號是怎么得出來的,怎么驗證序列號的有效性,去 ...…

查看全部問答∨

NDIS驅動求助

小弟對ndis驅動了解不多,最近參與一個關于ndis驅動的項目,看了miniport的代碼,在MPInitialize中選擇的網絡介質為802.3,按道理來說,通過起發送出去的幀應該為以太網幀,但在程序中始終找不到添加Mac頭的語句 望哪位大蝦能指點一下,NDIS驅動在哪里添 ...…

查看全部問答∨

wince 禁止圈圈出現

WinCE下的ListView Control和WIN32相較,有個明顯的不同就是長按觸摸屏或長按鼠標左鍵,會繪制一個小圓圈.這個小圓圈比較有意思,微軟的explorer在實現時,圓圈消失即相當于win32的按下鼠標右鍵.這個方法很好的彌補了觸摸屏無法表示右鍵的缺陷,我看很多 ...…

查看全部問答∨

EE_FPGA【預備知識 一】----QuartusII 簡介

這個應該是最詳細的了,新手還是很有必要看看的   切了一部分目錄   …

查看全部問答∨
小廣播
設計資源 培訓 開發板 精華推薦

最新單片機文章
何立民專欄 單片機及嵌入式寶典

北京航空航天大學教授,20余年來致力于單片機與嵌入式系統推廣工作。

 
EEWorld訂閱號

 
EEWorld服務號

 
汽車開發圈

 
機器人開發圈

電子工程世界版權所有 京ICP證060456號 京ICP備10001474號-1 電信業務審批[2006]字第258號函 京公網安備 11010802033920號 Copyright ? 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
主站蜘蛛池模板: 洞头县| 石楼县| 新津县| 营山县| 绍兴县| 岗巴县| 黔南| 盐源县| 东乡| 建湖县| 宁阳县| 富蕴县| 深州市| 南陵县| 获嘉县| 冷水江市| 海原县| 屯留县| 安溪县| 定远县| 进贤县| 长治县| 长治市| 贡嘎县| 定结县| 丹江口市| 南部县| 潍坊市| 山西省| 北川| 玛曲县| 思茅市| 新田县| 长沙市| 尚志市| 白水县| 萍乡市| 九龙城区| 马关县| 平潭县| 手游|