zoukankan      html  css  js  c++  java
  • atemega8例程:灯闪烁

    C语言“位运算”:

    “与&”运算:    1=1       0=0   0×1=0   0×0=0

    “或|”运算:       11=1       10=1       01=1       00=0

    “异或^”运算: 11=0       10=1       01=1       00=0

    设:PORTA==10110100  x=(0~7)

    PORTA &= ~(0x01<<x) x位置“0

    PORTA |= (0x01<<x)     x位置“1

    PORTA^=(0x01<<xx位置“取反”

    ______________________________________

    C语言常识:逻辑“真”:非“0”,  逻辑“假”:“0”。

    ______________________________________

    判断端口A的某一“位”的值:x= ( 0 ~ 7 )

    IfPORTA &(0x01<<x))then …

    if表达式中,如果x位的值为1,则表达式因为“非0”而为“真”,如果x位的值为0,则表达式因为值为“0”而为“假”。

    AVR的端口寄存器中DDRx默认为0x00PORTx默认为0x00
    
    
    /*********************************************************** 
    * 函数库说明:ATMEGE8 灯闪烁
    * 版本: v1.0
    * 修改: 庞辉
    * 修改日期: 2011年08月01日
    *
    * 说明: 无
    *
    * 版本更新:
    *
    ************************************************************
    *注意: LED C5
    **********************************************************
    */

    #include <avr/io.h>

    int main(void)
    {
    unsigned int i,j;

    //PORTC5设置为输出
    DDRC |= (1 << DDC5);
    //PORTC5输出低电平,LED亮
    PORTC &= ~(1 << PORTC5);

    while(1)
    {
    //取反
    PORTC ^= (1 << PORTC5);
    for(i = 0;i < 100;i ++)
    for(j = 0;j < 1000;j ++);
    }
    }


  • 相关阅读:
    静态链接到 MFC 的规则 DLL
    DLLAFX_MANAGE_STATE(AfxGetStaticModuleState())模块状态切换保护
    多线程专题之线程同步(1)
    UVa 4256 Salesmen dp
    nefu 661 Clockwise 水DP+略几何
    10635 Prince and Princess LCS&LIS
    UVa 3882 And Then There Was One 递推无力orz
    UVa 10192 Vacation 字符串dp
    UVa 11584 Partitioning by Palindromes 回文串dp
    UVa 10534 Wavio Sequence LIS
  • 原文地址:https://www.cnblogs.com/pang123hui/p/2312384.html
Copyright © 2011-2022 走看看