当前位置:网站首页>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;
}
边栏推荐
- II Simple NSIS installation package
- Query the table name used by kettle in Oracle
- Global and Chinese market of core pallets 2022-2028: Research Report on technology, participants, trends, market size and share
- Cygwin installation
- Record the opening ceremony of Beijing Winter Olympics with display equipment
- Apple system shortcut key usage
- Opendrive record
- 研究發現,跨境電商客服系統都有這五點功能!
- How to define guid in AMI code
- Altium Designer 19.1.18 - 隐藏某一个网络的飞线
猜你喜欢
A simple method to prove 1/t Fourier transform
Create inf module in AMI code
Altium Designer 19.1.18 - 导入板框
Altium designer learning (I)
About the problem that MySQL connector net cannot be cleared in MySQL
Train your dataset with yolov4
如何进行导电滑环选型
P3D gauge size problem
[neo4j] common operations of neo4j cypher and py2neo
UEFI development learning 3 - create UEFI program
随机推荐
Cygwin installation
找不到实时聊天软件?给你推荐电商企业都在用的!
1089 Insert or Merge 含测试点5
Count and sort the occurrence times of specific fields through SQL statements
导电滑环磨损快的原因
Record the torch encountered by win10 cuda. is_ False problem in available()
Pagoda create multiple sites with one server
Altium designer 19.1.18 - clear information generated by measuring distance
NSIS finds out whether the file exists and sets the installation path
From then on, I understand convolutional neural network (CNN)
"Source code interpretation" famous programmer TJ's only library
Build your own random wallpaper API for free
[popular science] some interesting things that I don't know whether they are useful or not
Beijing Winter Olympics opening ceremony display equipment record 3
Explain STM32 startup file in detail
A complete set of indicators for the 10000 class clean room of electronic semiconductors
Train your dataset with yolov4
Opendrive arc drawing script
Mouse click fireworks explosion effect
Could NOT find XXX (missing: XXX_LIBRARY XXX_DIR)