Microsoft Word - MAN2023A_CH_APPONE.doc

Similar documents
Microsoft Word - MAN2011A_CH_RTT.doc

新・明解C言語入門編『索引』

C 1

C语言的应用.PDF

新版 明解C++入門編

CC213

プリント

2013 C 1 # include <stdio.h> 2 int main ( void ) 3 { 4 int cases, a, b, i; 5 scanf ("%d", & cases ); 6 for (i = 0;i < cases ;i ++) 7 { 8 scanf ("%d %d

6 C51 ANSI C Turbo C C51 Turbo C C51 C51 C51 C51 C51 C51 C51 C51 C C C51 C51 ANSI C MCS-51 C51 ANSI C C C51 bit Byte bit sbit

C PICC C++ C++ C C #include<pic.h> C static volatile unsigned char 0x01; static volatile unsigned char 0x02; static volatile unsigned cha

目录

JLX

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 1 欢 迎 持 续 在 门 口 欢 迎 学 生, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 预 备 活 动 <10 分 钟 A 猜 猜 是 谁 B 上 帝 的 礼 物 无 孩 子 们 的 儿 时

团 契 就 体 力 来 说, 参 孙 乃 是 地 上 极 强 壮 的 人 ; 但 在 自 制 忠 贞 和 坚 稳 上, 他 却 是 人 间 最 软 弱 的 了 先 祖 与 先 知 第 页 教 室 布 置 见 第 一 课 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动

2. 四 诊 2.1. [b] 总 括 [/b] 儿 科 自 古 再 为 难 事 盖 以 小 儿 形 质 柔 脆, 易 虚 易 实, 调 治 少 乖, 则 毫 厘 之 差, 遂 至 千 里 之 愆 而 气 血 尚 未 充 盈, 难 只 以 据 脉 为 准 ; 神 识 未 发, 不 知 言 其 疾 苦

; 临 风 池 兮 脑 空 鸣, 穷 窍 阴 兮 完 骨 明 ; 举 浮 白 于 天 冲, 接 承 灵 于 正 营, 目 窗 兮 临 泣, 阳 白 兮 本 神 ; 率 谷 回 兮 曲 鬓 出, 悬 厘 降 兮 悬 颅 承 ; 颔 厌 兮 佳 客 主 人, 听 会 兮 童 子 迎 厥 阴 在 足, 肝

第一章

SA-CPCB81TRA-CN (Panduit INdustrial Automation Solutions).indd

教育扩张能改善收入分配差距吗?——来自CHNS2006年数据的证据

山水文化,市井人家——以湖州邱城小镇的概念性规划为例

臺北市立百齡高級中學九十二學年度第一學期代理教師甄選辦法草案

第九屆全國環境保護模範社區優良事蹟.PDF

105 學 年 度 臺 中 市 立 國 民 中 學 藝 術 才 能 舞 蹈 班 學 生 招 生 暨 鑑 定 重 要 程 序 日 程 表 項 目 重 要 日 期 重 要 工 作 事 項 辦 理 單 位 簡 章 公 告 105 年 3 月 簡 章 暨 報 名 表 請 自 行 於 各 承 辦 網 站 下

國 際 金 融 業 務 台 北 市 忠 孝 東 路 四 段 325 號 6 樓 (02) FAX:(02) 分 行 北 寧 分 行 台 北 市 南 京 東 路 四 段 16 號 (02) FAX:(02) 復 旦 分 行

《捕捉儿童敏感期》

2 國 文 考 科 試 題 解 析 命 題 出 處 與 南 一 版 第 五 冊 第 二 課 幽 夢 影 選 課 程 內 涵 同 試 題 解 析 某 君 講 信 用, 重 然 諾, 行 事 穩 健, 工 作 負 責 較 符 合 謹 飭 友 謹 飭 友 指 的 是 言 行 謹 慎 而 有 節 制 的 朋

untitled

29 碳 酸 钙 D3 片 ( 别 名 维 生 素 D3 碳 酸 钙 ) 吉 林 省 第 一 批 低 价 药 30 炔 诺 酮 滴 丸 吉 林 省 第 一 批 低 价 药 31 去 氯 羟 嗪 片 吉 林 省 第 一 批 低 价 药 32 茶 苯 海 明 片 吉 林 省 第 一 批 低 价 药 33

穨飲食與養老_決定版_.PDF

untitled

untitled

C 1 # include <stdio.h> 2 int main ( void ) { 4 int cases, i; 5 long long a, b; 6 scanf ("%d", & cases ); 7 for (i = 0;i < cases ;i ++) 8 { 9

51 C 51 isp 10 C PCB C C C C KEIL

Microsoft Word - 实用案例.doc

_汪_文前新ok[3.1].doc

Microsoft PowerPoint - ds-1.ppt [兼容模式]

Microsoft Word - 事務培訓招生簡章(含報名表).doc

( CIP) /. :, ( ) ISBN TP CIP ( 2005) : : : : * : : 174 ( A ) : : ( 023) : ( 023)

int *p int a 0x00C7 0x00C7 0x00C int I[2], *pi = &I[0]; pi++; char C[2], *pc = &C[0]; pc++; float F[2], *pf = &F[0]; pf++;

恩 典 课 堂 教 学 概 览 课 堂 环 节 持 续 时 间 活 动 所 需 材 料 欢 迎 在 门 口 欢 迎 孩 子, 聆 听 他 们 分 享 本 周 开 心 或 烦 恼 的 事 无 预 备 活 动 <10 分 钟 A 十 诫 石 板 B 我 是 谁? 粘 土 牙 签 一 些 名 人 的 照

Microsoft Word - 服装_hyc13_ doc

计算机网络

000-A-155 撠

untitled

1 Project New Project 1 2 Windows 1 3 N C test Windows uv2 KEIL uvision2 1 2 New Project Ateml AT89C AT89C51 3 KEIL Demo C C File

テラル取扱説明書 IMN T

1 LINUX IDE Emacs gcc gdb Emacs + gcc + gdb IDE Emacs IDE C Emacs Emacs IDE ICE Integrated Computing Environment Emacs Unix Linux Emacs Emacs Emacs Un

33 8 No.8Vol.33 JOURNALOF NEIJIANG NORMAL UNIVERSITY MHz-RFID 1, 1, 2, 1, 1 1, * (1., ; 2., ) : 433 MHz, STM MHz, 433MHz,,.,,.

华恒家庭网关方案

Microsoft Word - 家用电器_hyc7620_ doc

专业主干课程与主要专业课程教学大纲(2009年、2011年).doc

Microsoft Word - 目次範例-catalog doc

untitled

目 錄 壹 訓 練 相 關 法 規 一 交 通 事 業 人 員 員 級 晉 升 高 員 級 資 位 訓 練 辦 法 2 二 99 年 度 交 通 事 業 人 員 員 級 晉 升 高 員 級 資 位 訓 練 課 程 配 當 表 8 三 交 通 事 業 人 員 員 級 晉 升 高 員 級 資 位 訓 練

<31372E20AF51AAFEBEAFAABAC17BA7C9C0B3A5CEA4DFB16F2E706466>

更新历史 版本时间更新作者 Rev. A 初始创建 Dracula 微控电子乐微电子杭州市登云路 639 号 2B143 销售 TEL: 支持 TEL: FAX: ww

untitled

Car DVD API User Manual V0.2 Feb 03, 2008

untitled

1701.doc

( ) 60 61

Microsoft Word - MSP430 Launchpad 指导书.docx

Microsoft PowerPoint - ds-9.ppt [兼容模式]

Microsoft Word - 大连机构资讯周报( )

学习MSP430单片机推荐参考书

2 12

一、考試宗旨:考選風險管理人才,提升風險管理水準。

梁启超

2. 论 痘 疹 受 病 之 由 2.1. 夫 小 儿 在 胎 之 时. 乃 母 五 脏 之 液 所 养 成 形 也. 其 母 不 知 禁 戒. 纵 情 浓 味. 好 啖 辛 酸. 或 食 毒 物. 其 气 传 于 胞 胎 之 中. 此 毒 发 为 疮 疹. 名 曰 三 秽 液 毒. 一 五 脏 六

说 : 荀 子 极 偏 驳, 只 一 句 性 恶, 大 本 已 失 5 朱 熹 说 : 荀 扬 不 惟 说 性 不 是, 从 头 到 底 皆 不 识 6 采 取 的 都 是 这 种 理 论 框 架 另 一 种 理 论 框 架 始 于 20 世 纪 前 期, 这 便 是 诸 子 学 研 究 的 框 架

四川省普通高等学校

untitled

诸病源候论

AL-M200 Series

目 錄 壹 訓 練 相 關 法 規 一 交 通 事 業 人 員 員 級 晉 升 高 員 級 資 位 訓 練 辦 法 2 二 104 年 度 交 通 事 業 人 員 員 級 晉 升 高 員 級 資 位 訓 練 課 程 配 當 表 10 三 公 務 人 員 晉 升 官 等 ( 資 位 ) 訓 練 成 績

台 灣 花 精 溫 暖 的 家 台 灣 花 精 的 家 再 蛻 變 與 花 氣 最 初 的 相 遇 在 祈 光 總 部, 因 為 一 個 入 世 之 夢, 台 灣 花 精 的 家 落 腳 市 中 心 繁 華 巷 弄 裡, 用 花 草 出 世 的 靈 秀 之 氣 迎 接 心 靈 花 友, 始 終 如

User ID 150 Password - User ID 150 Password Mon- Cam-- Invalid Terminal Mode No User Terminal Mode No User Mon- Cam-- 2

1-4藍球

Microsoft Word - 正文.doc

26 头 孢 他 啶 注 射 剂 27 头 孢 他 美 酯 口 服 常 释 剂 型 28 头 孢 吡 肟 注 射 剂 29 头 孢 硫 脒 注 射 剂 30 头 孢 唑 肟 注 射 剂 31 头 孢 替 安 注 射 剂 32 头 孢 哌 酮 注 射 剂 33 头 孢 哌 酮 舒 巴 坦 注 射 剂

C/C++语言 - C/C++数据

工业和信息化部 水利部 全国节约用水办公室


修正外國人從事就業服務法第四十六條第一項第八款至第十一款工作資格及審查標準部分條文

zt

簡   歷

從 象 耳 出 照 象 頂 上, 化 作 金 臺 其 象 頭 上 有 三 化 人 : 一 捉 金 輪 一 持 摩 尼 珠 一 執 金 剛 杵 舉 杵 擬 象, 象 即 能 行, 腳 不 履 地, 躡 虛 而 遊, 離 地 七 尺 地 有 印 文, 於 印 文 中 千 輻 轂 輞 皆 悉 具 足, 一

EK-STM32F

更新历史 版本时间更新作者 Rev. A 初始创建 Dracula 微控电子乐微电子杭州市登云路 639 号 2B143 销售 TEL: 支持 TEL: FAX: www.

untitled

第三节 软件测试的过程与策略

<4D F736F F D20D0C5CDD0D0D0D2B C4EACDB6D7CAB2DFC2D4A3BAD3C9B9E6C4A3D4F6B3A4CFF2C4DAC9FAD0D4D4F6B3A4D7AAB1E42D E646F63>

子 衛 生 局 沒 錯, 這 部 分 的 範 圍 很 大, 難 免 有 些 漏 洞, 我 們 已 盡 最 大 的 努 力 在 做 我 前 面 擺 了 這 麼 多 東 西, 局 長 一 看 應 該 也 就 知 道 我 要 問 食 品 衛 生 的 問 題 依 食 品 衛 生 的 相 關 法 令, 食 品

广州白云国际机场股份有限公司


untitled

0 1!, 10,,,,,, ( 1) 1 ( ) ( ) ( ) ( ) , , 7 10, 600,

ebook39-6

Simulator By SunLingxi 2003

Transcription:

AT91 softpack 1.5 代码解读 基于 SAM7X EK 综合应用代码解读 文档编号 文档版本 Rev. A 文档摘要 基于 AT91SAM7X EK 开发板的代码解读,GPIO H161T01 代码解读 关键词 AT91SAM7X256 系统板 创建日期 2010 07 14 创建人员 Cust126 审核人员 Robin 文档类型 公开发布 / 开发板配套文件 版权信息 Mcuzone 原创文档, 转载请注明出处

更新历史 版本时间更新作者 Rev. A 2010 07 14 初始创建 Cust126 微控电子乐微电子杭州市登云路 639 号 2B143 销售 TEL:86 571 89908193 13957118045 支持 TEL:18913989166 13957118045 FAX:86 571 89908193 www.mcuzone.com www.atarm.com

1. 概述 本文档以 SAM7X EK 为硬件平台,IAR EWARM 为编译器平台, 使用 J Link 作为调试工具, 演示并解读 AT91SAM7X256 的综合应用操作流程 2. 综合应用操作 2.1 综合应用操作的目的与功能描述 主要是熟悉 SAM7X EK 为硬件平台, 并对小的应用程序模块综合起来进行项目的开发 实现的功能是每隔 1s AD 采集一次数据并把数据存储在 DATAFLASH 中去, 其中 DATAFLASH 前面几个数据为当前系统时间 采集的数据在 LCD 上显示 2.2.1 main 函数代码注释解读 下面对主要代码进行注释解读, 首先是 main 函数内容 : int main(void) int i; // Enable DBGU struct tm *rtc_time; TRACE_CONFIGURE(DBGU_STANDARD, 115200, BOARD_MCK); printf(" Basic RTT Project %s \n\r", SOFTPACK_VERSION); printf(" %s\n\r", BOARD_NAME); printf(" Compiled: %s %s \n\r", DATE, TIME );

PIO_Configure(pins, PIO_LISTSIZE(pins)); AT91C_BASE_PMC >PMC_PCER = 1 << AT91C_ID_TWI; TWI_Configure(AT91C_BASE_TWI, TWCK, BOARD_MCK); TWID_Initialize(&twid, AT91C_BASE_TWI); AIC_ConfigureIT(AT91C_ID_TWI, 0, ISR_Twi); AIC_EnableIT(AT91C_ID_TWI); pcf8563_init(); SetDatetime(); ConfigureLeds(); LCD_CS_1; LCD_SCL_1; LCD_RST_1; LCD_SCL_1; LCD_DC_1; LCD_init(); LCD_test(); #ifdef PINS_ADC PIO_Configure(pinsADC, PIO_LISTSIZE(pinsADC)); #endif // Configure RTT AT91F_CfgSPIForDataFlash(); ADC_Initialize( AT91C_BASE_ADC, AT91C_ID_ADC, AT91C_ADC_TRGEN_DIS, 0, AT91C_ADC_SLEEP_NORMAL_MODE, AT91C_ADC_LOWRES_10_BIT, BOARD_MCK, BOARD_ADC_FREQ, 10, 1200); ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_1); ADC_EnableChannel(AT91C_BASE_ADC, ADC_NUM_2); AIC_ConfigureIT(AT91C_ID_ADC, 5, ISR_Adc);

AIC_EnableIT(AT91C_ID_ADC); printf(" I Press any key to perform a measurement on the ADC...\n\r"); ConfigureRtt(); // User input loop while (1) rtc_time = GetDatetime(); delay_ms(1000); ti[0]=rtc_time >tm_hour; ti[1]=rtc_time >tm_min; ti[2]=rtc_time >tm_sec; DisplayString("mcuzone",4,0); DisplayString("counter:",0,1); DisplayChar(i+48,9,1); DisplayString("ADC:",0,2); DisplayChar(temp[3]+48,6,2); DisplayChar(temp[2]+48,7,2); DisplayChar(temp[1]+48,8,2); DisplayChar(temp[0]+48,9,2); DisplayString("mV",10,2); // 显示 ADC 采集的数据 DisplayString("time",5,3); // 显示系统时间 DisplayChar((rtc_time >tm_hour/10)%10+48,0,4); DisplayChar(rtc_time >tm_hour%10+48,1,4); DisplayString(":",2,4); DisplayChar((rtc_time >tm_min/10)%10+48,3,4); DisplayChar(rtc_time >tm_min%10+48,4,4); DisplayString(":",5,4); DisplayChar((rtc_time >tm_sec/10)%10+48,6,4); DisplayChar(rtc_time >tm_sec%10+48,7,4); 下面是对子函数的解读 : void ISR_Rtt(void) unsigned int status;

unsigned int id_channel; unsigned int i,j,u; // Get RTT status status = RTT_GetStatus(AT91C_BASE_RTTC); n++; // Start measurement if ((status & AT91C_RTTC_RTTINC) == AT91C_RTTC_RTTINC) m=rtt_gettime(at91c_base_rttc); //DBGU_GetChar(); conversiondone = 0; ADC_EnableIt(AT91C_BASE_ADC, ADC_NUM_1); ADC_EnableIt(AT91C_BASE_ADC, ADC_NUM_2); //printf("time: %u\n\r", RTT_GetTime(AT91C_BASE_RTTC)); //printf("m: %u\n\r", m); ADC_StartConversion(AT91C_BASE_ADC); while( conversiondone!= ((1<<ADC_NUM_1) (1<<ADC_NUM_2)) ); for(id_channel=adc_num_2;id_channel<=adc_num_2;id_channel++) Buffer[m%264]=ConvHex2mV(ADC_GetConvertedData(AT91C_BASE_ADC, id_channel)); //Buffer[m]=ADC_GetConvertedData(AT91C_BASE_ADC, id_channel); printf("buffer[%d]: %u\n\r", (m%264),buffer[m%264]); temp[0]=buffer[m%264]%10; temp[1]=(buffer[m%264]/10)%10; temp[2]=(buffer[m%264]/100)%10; temp[3]=(buffer[m%264]/1000)%10; // 数据转换 if(n==264) n=0; q++; if(q==8192) q=0;

//########################################################################## // 初始化 SPI_DataFlash AT91F_CfgSPIForDataFlash(); // 擦除 DATAFLASH 的某一页 ( 第 10 页 ) //AT91F_USRT_Printk((AT91PS_USART)AT91C_BASE_DBGU,"Erase one pages!\n\r"); printf("erase %4d pages!\n\r",q); // 等待 DATAFLASH 准备好 // 擦除 DATAFLASH while(at91f_dataflashpageerase (&DataFlash,(unsigned char*)buffer_dataflash,(q*dataflash.pdevice >pages_size),(dataflash.pdevice >pages_size) )!=DATAFLASH_OK); // 等待擦除完 // 写 DATAFLASH 的某一页 ( 第 10 页 ) //AT91F_USRT_Printk((AT91PS_USART)AT91C_BASE_DBGU,"Write one pages!\n\r"); printf("write %4d pages!\n\r",q); // 写入时数据转换 for(j=0;j<4;j++) Buffer_Write_Dataflash[2*j]=((ti[j] >> 8)&0xff); Buffer_Write_Dataflash[2*j+1]=(ti[j]&0x00ff); for(j=4;j<264;j++) Buffer_Write_Dataflash[2*j]=((Buffer[j] >> 8)&0xff); Buffer_Write_Dataflash[2*j+1]=(Buffer[j]&0x00ff); for(i=0;i<buffer_size_dataflash;i++) Buffer_Dataflash[i]=Buffer_Write_Dataflash[i]; // 等待 DATAFLASH 准备好 // 写数据到 DATAFLASH while(at91f_dataflashpagepgmbuf(&dataflash,(unsigned char*)buffer_dataflash,(q*dataflash.pdevice >pages_size),(dataflash.pdevice >pages_size) )!=DATAFLASH_OK);

// 等待写完 // 读 DATAFLASH 的某一页 ( 第 10 页 ) //AT91F_USRT_Printk((AT91PS_USART)AT91C_BASE_DBGU,"Read one pages!\n\r"); printf("read %4d pages!\n\r",q); for(i=0;i<buffer_size_dataflash;i++) Buffer_Dataflash[i] = 0x00; // 等待 DATAFLASH 准备好 // 从 DATAFLASH 读数据 while(at91f_dataflashpageread(&dataflash,(q*dataflash.pdevice >pages_size),(unsigned char*)buffer_dataflash,(dataflash.pdevice >pages_size) )!=DATAFLASH_OK); // 等待读完 for(i=0;i<buffer_size_dataflash;i++)buffer_read_dataflash[i]=buffer_dataflash[i]; // 比较写入与读出的数据, 如果不相等, 则数据出错 //for(i=0;i<buffer_size_dataflash;i++) // //if(i>=20) // //if(buffer_read_dataflash[i]!=2) //AT91F_USRT_Printk((AT91PS_USART)AT91C_BASE_DBGU,"the data is error test is failure!\n\r"); break; // //else // //if(buffer_read_dataflash[i]!=buffer_write_dataflash[i]) break; //AT91F_USRT_Printk((AT91PS_USART)AT91C_BASE_DBGU,"the data is error test is failure!\n\r"); // printf("%4d",buffer_read_dataflash[i]);

// //if(i==buffer_size_dataflash) AT91F_USRT_Printk((AT91PS_USART)AT91C_BASE_DBGU,"the test is right!\n\r");// 写入如读出的数据相等 for(j=0;j<264;j++) BufferOUT[j]=(( Buffer_Read_Dataflash[2*j] << 8 ) ( Buffer_Read_Dataflash[2*j+1] & 0x00ff )); printf("%4d",bufferout[j]); printf("\n\r"); AT91F_SPI_Close(AT91C_BASE_SPI0); 其余的子函数都在之前发布的技术文档里有解释, 在这里就不在重复叙述了