TQ210裸机编程(2)——LED流水灯

发布者:runaway2000最新更新时间:2020-12-23 来源: eefocus关键字:TQ210  裸机编程  LED流水灯 手机看文章 扫描二维码
随时随地手机看文章

两个文件start.S和led.c

start.S

.global _start @声明一个全局的标号
_start:
bl main @跳转到C函数去执行
halt:
b halt @死循环


led.c

#define GPC0CON *((volatile unsigned int *)0xE0200060)
#define GPC0DAT *((volatile unsigned int *)0xE0200064)

void delay(volatile unsigned int t)
{
volatile unsigned int t2 = 0xFFFF;
while (t--)
for (; t2; t2--);
}

int main()
{
int toggle = 0;
GPC0CON &= ~(0xFF << 12);
GPC0CON |= 0x11 << 12; // 配置GPC0_3和GPC0_4为输出

while (1)
{
GPC0DAT &= ~(0x3 << 3); // 熄灭LED1和LED2

if (toggle)
GPC0DAT |= 1 << 3; // 点亮LED1
else
GPC0DAT |= 1 << 4; // 点亮LED2

toggle = !toggle;
delay(0x50000);
}

return 0;
}


Makefile

led.bin: start.o led.o
arm-linux-ld -Ttext 0x20000000 -o led.elf $^
arm-linux-objcopy -O binary led.elf $@
arm-linux-objdump -D led.elf > led.dis

led.o : led.c
arm-linux-gcc -c $< -o $@
start.o : start.S
arm-linux-gcc -c $< -o $@

clean:
rm *.o *.elf *.bin *.dis


关键字:TQ210  裸机编程  LED流水灯 引用地址:TQ210裸机编程(2)——LED流水灯

上一篇:TQ210裸机编程(4)——按键(中断法)
下一篇:TQ210裸机编程(1)——LED流水灯

推荐阅读最新更新时间:2024-11-03 20:46

jz2440裸机开发与分析:串口编程5之串口实现printf
部分重要代码: main.c #include s3c2440_soc.h #include uart.h #include my_printf.h int main(void) { unsigned char c; uart0_init(); puts( Hello, world!nr ); my_printf_test(); while(1) { c = getchar(); if (c == 'r') { putchar('n'); } if (c == 'n') { putchar('r'); }
[单片机]
TQ210裸机编程(8)——PWM
事实上,要使TQ210板子上的蜂鸣器发声是非常容易的,因为天嵌给TQ210的蜂鸣器为有源蜂鸣器,只要给蜂鸣器供电,蜂鸣器就会发出固定频率的声音。 TQ210板子上的蜂鸣器接在TOUT1引脚,只要给它高电平,蜂鸣器就会发声。 如下代码: /* 配置GPD0 为输出 */ GPD0CON &= ~(0xF 4); GPD0CON |= 1 4; /* GPD0 输出高电平即可使蜂鸣器发声 */ GPD0DAT |= 1 1; S5PV210包含5个32位的脉宽调制定时器。这些定时器都可产生中断。每个定时器可选择输入时钟为PCLK或SCLK_PWM。 定时器的操作比较简单,下面列出操作步骤: 1、设
[单片机]
jz2440裸机开发与分析:串口编程2
、 UART0初始化 初始化配置内容:波特率(115200);8bit数据位;1bit停止位;无奇偶校验位;无流控制 uart.c: void uart0_init() { /*配置GPH2,3为TXD,RXD,并且将这两个引脚内部拉高*/ /*GPHCON(0x56000070)*/ /*GPHUP(0x56000078)*/ GPHCON &= ~((0x3 4) | (0x3 6)); // 置零 GPHCON |= ((0x2 4) | (0x2 6)); GPHUP &= ~((0x1 2) | (0x1 3));// 置零 /*设置波特率115200*/ /*UBR
[单片机]
jz2440<font color='red'>裸机</font>开发与分析:串口<font color='red'>编程</font>2
LED流水灯 LED数码管计数
电路图 : 程序代码如下: #include reg51.h char led_a ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07}; char led_b ={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; void delay(int n) { int m,x; for(m=0;m n;m++) for(x=0;x n;x++) ; } void main(void) { int j,i,k=0; P3=led_b ; while(1) { j=0x01; fo
[单片机]
<font color='red'>LED</font><font color='red'>流水灯</font> <font color='red'>LED</font>数码管计数
单片机 LED 流水灯程序
我们前边学了点亮一个 LED 小灯,然后又学了 LED 小灯闪烁,现在我们要进一步学习如何让8个小灯依次一个接一个的点亮,流动起来,也就是常说的流水灯。先来看8个 LED 的核心电路图,如图4-12。 图4-12 LED 小灯电路图 通过前面的课程,我们可以了解到控制引脚 P0.0 经过 74HC245 控制了 DB0,P0.1 控制 DB1...... P0.7 控制 DB7。我们还学到一个字节是8位,我们如果写一个 P0,就代表了 P0.0 到 P0.7 的全部8个位。比如我们写 P0 = 0xFE;转换成二进制就是 0b11111110,所以点亮 LED 小灯的程序,实际上我们可以改成另外一种写法,如下所示。 #incl
[单片机]
单片机 <font color='red'>LED</font> <font color='red'>流水灯</font>程序
TQ210——按键(中断查询法)
底板上有8个独立按键,可分别使用查询法和中断法控制按键。通过原理图可知:按键按下,GPIO检测到低电平,松开时高电平。 直接查询法程序的实现简单,但是效率很低,CPU一直在查询,啥事也干不了。中断查询法程序的实现较为复杂,但是效率高。 GPIO寄存器(GPH0CON,GPH0DAT),外部中断寄存器(EXT_INT_0_CON,EXT_INT_0_MASK),中断通道选择(VIC0INTSELECT),中断使能(VIC0INTENABLE),中断向量地址(VIC0VECTADDR0,VIC0VECTADDR1),清除中断向量(EXT_INT_0_PEND) .global _start
[单片机]
mini2440简单的裸机led流水灯代码
MINI2440简单的裸机led流水灯代码 ADS配置target setting的post-liner为ARM formELF language setting的ARM Assembler和ARM C Compile的Target中的Architecture or processor设置为arm920T linker中的ARM linker中output--simple image--RO base设置为0x30000000;options--Image entry point设置为0x30000000;layout--object/symbol设置为Init.o(就是汇编的名字改了后缀.o文件名称) 汇编代码:Init
[单片机]
s3c2440裸机-norflash4-编程实现
1.识别norflash 我们知道要识别norflash属性,要让norflash进入cfi模式,然后按照手册上的表格发送一系列的命令就能获取norflash属性。 1)发送命令 那么我们需要实现一个cpu向nor发命令的一个函数nor_cmd()。我们的norflash是16bit位宽的,所以访问nor是以16位为单位访问的。 #define NOR_FLASH_BASE 0 /* jz2440, nor-- cs0, base addr = 0 */ /* 比如: 55H 98 ** 本意是: 往(0 + (0x55) 1)写入0x98 */ void nor_write_word(unsigned int b
[单片机]
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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