摘要:了解定时器的内核后,用它的sys_clk_timer功能是很简单的。 在SOPC 中,选定时器内核 选以后的设置 设定周期为 1ms ,定时器的名字可以任意命名,这个为 sys_clk_timer,为和 Nios IDE 里面的一样。 在Nios IDE里面还需要设置一下, OK,下面就是C代码的事了,缺氧的博客http://www.cnblogs.com/yuphone/archive/2010/04/18/1714554.html有例子。里面的调用库函数写,我还不是很。。。
阅读全文
摘要:定时器是一个非常重要的外围设备。它可以作为系统的周期性时钟源(Tick); 也可以作为一个计时器,测定事件发生的时间;还可以对外输出周期性脉冲或作为一条监管系统正常运行的"看门狗"(Watchdog) 。 定时器是挂载在 Avanlon 总线上的32位定时器,它提供以下特性: 两种计数模式:单次减 1和连续减 1计数模式(软件设置,见控制寄存器CONT位); 定时器达到 0 时产生中断请求(IRQ); 可选择设定为看门狗定时器,当为看门狗时,定时器计算达到 0 时复位系统; 可选择输出周期性脉冲,在定时器计算达到 0 时输出脉冲; 可由软件启动、停止和复位定时器
阅读全文
摘要:NIOS II 集成开发环境(IDE) 是 NIOS II 系列嵌入式处理器的基本软件开发工具。所有软件开发任务都可以在 NIOS II IDE下完成,包括编辑、编译和调试程序。NIOS II 还提供了一个统一的开发平台,用于NIOS II 处理系统。 NIOS II IDE 基于开放式的、可扩展 Eclipse IDE Project 工程以及 Eclipse C/C++ 开发工具(CDT) 工程。NIOS II IDE为软件提供4个主要功能:工程管理器、编辑器和编译器、调试器以及闪存编程器。 工程管理中的软件组件,NIOS II IDE 提供的软件组件包括:硬件抽象层系统库(HAL)、
阅读全文
摘要:每一个学习和使用 C 语言的人,都应当深入地学习和掌握指针。我汗颜啊。。。 一个变量的地址称为该变量的"指针",如果有一个变量专门用来存放另一个变量的地址(即指针),则它称为指针变量。比如 int i; int *p; p = & i;如果 i 的地址是2000,那么2000是变量 i 的指针。p就是一个指针变量。指针变量的值就是指针(即地址)。总之,指针就是一个地址,而指针变量是存放地址的变量。 变量的指针就是变量的地址。存放变量地址的变量就是指针变量,它是用来指向另一个变量的。 int * p1 , *p2 ;定义了两个指针变量 p1 和 p2 ,它们是指向整形变量的指针变量。" *
阅读全文
摘要:对于一个不熟悉的东西,出问题了,哪怕是一个简单的问题也要折腾半天,但我知道只要折腾一段时间就会好的。。。 问题(1): 出现这个问题的原因很多。 在网上查阅了几种解决办法: (1): 软件版本的问题,现在的软件应该不存在这个问题。 (2): 芯片设置问题,unused pin 设置为 输入三态。 (3): 芯片设置问题,复用引脚的设置。 都没解决问题,最后在《NIOS II 那些事儿》里面的常见问题解答里面找到了答案,是NIOS 软核的复位(RESET)出了问题。原来写代码时复位总是这样写,低电平复位。 在例化NIOS核的时候也就想当然这样了,结果就出现了以上了错误,软核的复位不要这个取反的.
阅读全文
摘要:C语言还没入门,慢慢学,急不得。。。 在《NIOS II的那些事儿》的第一课LED实验中我就遇到了难题。。。 在生成的 system.h 文件中的PIO配置部分有这么一句: #define PIO_LED_BASE 0x02000000 我们自己写的 sopc.h 文件是这样的: 在主函数 main.c 中我们是这样用的: 首先就要搞清楚 typedef 的作用,typedef为C语言的关键字,作用是为一种数据类型定义一个新名字。这里的数据类型包括内部数据类型(int,char等)和自定义的数据类型(struct等)。在编程中使用typedef目的一般有两个,一
阅读全文
摘要:学NIOS的时候发现自己C语言基础太差,一定要补一下,下了个编译器CodeBlocks,用的还行。。。 新建工程: 选择Console application,工程名字和工程路径: 看你是用C++还是C,我是学C的。。。 这个估计是选择编译器或者编译环境还有一些设置之类的,编译器我不是很懂 OK,可以看到里面有个巨经典的代码,哈哈哈、 至于其他的高级功能,我就搞不懂了。。。
阅读全文
摘要:预处理命令是由 ANSI C 统一规定的,但是它不是C语言本身的组成部分,不能直接对它们进行编译。必须在对程序进行通常编译(包括词法和语法分析、代码生成、优化等)之前,先对程序中的特殊命令进行 "预处理"。 C语言提供的预处理功能主要有以下3种: 1. 宏定义 #define 2. 文件包含 #include 3.条件编译 #if 宏定义不是C语言语句,不必在行末加分号。如果加分号则会连分号一起进行置换。 在文件包含处理中,#includefile2.h 和 #include "file2.h"都是合法的。二者的区别是用时,系统到存放 C 库函数头文件的
阅读全文
摘要:坚决归零。。。 C语言应注意的基本编程规范: 1,文件名用小写字母、下划线、数字的组合命名,不可出现空格等其他字符,更不允许出现汉字、日语、俄语等 ASCII码字符。 2,每个.c文件都要对应一个.h文件来配合其对外资源声明。.h文件内可包括 宏定义、类型定义、对外资源(全局变量、全局函数)声明。 .c文件可以包含变量声明、函数原型、函数体。为了防止重复调用,.h文件的逻辑开头需要加入开关控制。 3,宏、枚举体均需要用大写字母、数字及下划线的组合,宏与常量之间用 "tab” 隔离,同一类型含义的宏定义在一起,并放于相关的头文件中。宏定义以能表达清楚含义为标准。 4,我们可以用c关键字
阅读全文