leds.c

来自「俄罗斯高人Mamaich的Pocket gcc编译器(运行在PocketPC上)」· C语言 代码 · 共 82 行

C
82
字号
/* * leds.c -- control the led's on a Motorola mc68ec0x0 board. * * Copyright (c) 1995 Cygnus Support * * The authors hereby grant permission to use, copy, modify, distribute, * and license this software and its documentation for any purpose, provided * that existing copyright notices are retained in all copies and that this * notice is included verbatim in any distributions. No written agreement, * license, or royalty fee is required for any of the authorized uses. * Modifications to this software may be copyrighted by their authors * and need not follow the licensing terms described here, provided that * the new terms are clearly indicated on the first page of each file where * they apply. */#include "leds.h"void zylons();void led_putnum();/* * led_putnum -- print a hex number on the LED. the value of num must be a char with *              the ascii value. ie... number 0 is '0', a is 'a', ' ' (null) clears *		the led display. *		Setting the bit to 0 turns it on, 1 turns it off. * 		the LED's are controlled by setting the right bit mask in the base * 		address.  *		The bits are: *			[d.p | g | f | e | d | c | b | a ] is the byte. * *		The locations are: *		 *			 a *		       ----- *		    f |     | b *		      |  g  | *		       ----- *                    |     | *                  e |     | c *                     ----- *                       d                . d.p (decimal point) */voidled_putnum ( num )char num;{    static unsigned char *leds = (unsigned char *)LED_ADDR;    static unsigned char num_bits [18] = {      0xff,						/* clear all */      0xc0, 0xf9, 0xa4, 0xb0, 0x99, 0x92, 0x82, 0xf8, 0x80, 0x98, /* numbers 0-9 */      0x98, 0x20, 0x3, 0x27, 0x21, 0x4, 0xe 		/* letters a-f */    };    if (num >= '0' && num <= '9')      num = (num - '0') + 1;    if (num >= 'a' && num <= 'f')      num = (num - 'a') + 12;    if (num == ' ')      num = 0;    *leds = num_bits[num];}/* * zylons -- draw a rotating pattern. NOTE: this function never returns. */voidzylons(){  unsigned char *leds 	= (unsigned char *)LED_ADDR;  unsigned char curled = 0xfe;  while (1)    {      *leds = curled;      curled = (curled >> 1) | (curled << 7);      delay ( 200 );    }}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?