当前位置:网站首页>Improve lighting C program
Improve lighting C program
2022-07-05 07:52:00 【Soy sauce;】
explain : The watchdog timer will reset the whole system automatically , Used to update bug, Systematic self-protection mechanism

** explain :
commonly CON Is the control input and output
DAT Control the specific register control pin
So just find the corresponding one
Development manuals are important , To be able to search
Cycle lighting procedure
The method of zeroing and setting one can be the same as before to set the desired bit or and
But it's too long to write , This kind of shift is generally used
void delay(volatile int d)
{
while (d--);
}
int main(void)
{
volatile unsigned int *pGPFCON = (volatile unsigned int *)0x56000050;
// Join in volatile The system will handle it properly , Will not automatically optimize
volatile unsigned int *pGPFDAT = (volatile unsigned int *)0x56000054;
int val = 0; /* val: 0b000, 0b111 */
int tmp;
/* Set up GPFCON Give Way GPF4/5/6 Configured as output pin */
*pGPFCON &= ~((3<<8) | (3<<10) | (3<<12));
// Zero clearing
*pGPFCON |= ((1<<8) | (1<<10) | (1<<12));
// Configuration register
/* Cycle on */
while (1)
{
tmp = ~val;
tmp &= 7;
*pGPFDAT &= ~(7<<4);
*pGPFDAT |= (tmp<<4);
delay(100000);
val++;
if (val == 8)
val =0;
}
return 0;
}
In addition, the latter uses to define registers as macros , The effect is the same, don't write
Key led Program
#include "s3c2440_soc.h"
// Write the function definition here , You don't have to configure registers all the time
void delay(volatile int d)
{
while (d--);
}
int main(void)
{
int val1, val2;
/* Set up GPFCON Give Way GPF4/5/6 Configured as output pin */
GPFCON &= ~((3<<8) | (3<<10) | (3<<12));
GPFCON |= ((1<<8) | (1<<10) | (1<<12));
// Reset first and then set one
/* To configure 3 Key pins are input pins : * GPF0(S2),GPF2(S3),GPG3(S4) */
GPFCON &= ~((3<<0) | (3<<4)); /* gpf0,2 */
GPGCON &= ~((3<<6)); /* gpg3 */
// Directly clear all
/* Cycle on */
while (1)
{
val1 = GPFDAT;
val2 = GPGDAT;
if (val1 & (1<<0)) /* s2 --> gpf6 */
{
/* Release */
GPFDAT |= (1<<6);
}
else
{
/* Press down */
GPFDAT &= ~(1<<6);
}
if (val1 & (1<<2)) /* s3 --> gpf5 */
{
/* Release */
GPFDAT |= (1<<5);
}
else
{
/* Press down */
GPFDAT &= ~(1<<5);
}
if (val2 & (1<<3)) /* s4 --> gpf4 */
{
/* Release */
GPFDAT |= (1<<4);
}
else
{
/* Press down */
GPFDAT &= ~(1<<4);
}
}
return 0;
}
边栏推荐
- Cygwin installation
- Global and Chinese markets of large aperture scintillators 2022-2028: Research Report on technology, participants, trends, market size and share
- TCP and UDP
- Day07 type of mathematical operator automatic conversion relational operator bitwise operator blind date math
- A complete set of indicators for the 10000 class clean room of electronic semiconductors
- Distinction between heap and stack
- Cadence simulation encountered "input.scs": can not open input file change path problem
- Using C language to realize IIC driver in STM32 development
- assert_ Usage of param function
- Win10 shortcut key
猜你喜欢

UEFI development learning 3 - create UEFI program

Ten thousand words detailed eight sorting must read (code + dynamic diagram demonstration)

SQL JOINS

High end electronic chips help upgrade traditional oil particle monitoring

生产中影响滑环质量的因素

Realization of binary relation of discrete mathematics with C language and its properties

Butterfly theme beautification - Page frosted glass effect

Build your own random wallpaper API for free

From then on, I understand convolutional neural network (CNN)

MLPerf Training v2.0 榜单发布,在同等GPU配置下百度飞桨性能世界第一
随机推荐
IEEE access personal contribution experience record
Mouse click fireworks explosion effect
Package ‘*****‘ has no installation candidate
solver. Learning notes of prototxt file parameters
Opendrive arc drawing script
The printer encountered an abnormal configuration problem 0x8007007e (win10)
Rename directory in C [closed] - renaming a directory in C [closed]
Day08 ternary operator extension operator character connector symbol priority
Define in and define out
QT's excellent articles
Numpy——1.数组的创建
Cadence learning records
Extern keyword function
STM32 learning method
Using C language to realize IIC driver in STM32 development
Embedded AI intelligent technology liquid particle counter
About yolov3, conduct map test directly
万字详解八大排序 必读(代码+动图演示)
软件设计师:03-数据库系统
High end electronic chips help upgrade traditional oil particle monitoring