-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhelpers.c
55 lines (49 loc) · 1.26 KB
/
helpers.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
#include "../config/board_config.h"
void delay_ms(unsigned int t) //Workaround f�r gr�ssere Delays bei 20MHz Systemtakt
{
for(;t>=35;t-=35)
__delay_ms(35);
for(;t>=1;t--)
__delay_ms(1);
}
void delay_us(unsigned int value) //Workaround f�r gr�ssere Delays bei 20MHz Systemtakt
{
for(;value>=100;value-=100)
__delay_us(100);
for(;value>=10;value-=10)
__delay_us(10);
}
unsigned int BinBCD_int8(unsigned char value) //Umwandlung Bin�r zu BCD
{
unsigned char ei,ze; //dekl. Lokale Variabeln
unsigned int hu; //dekl. Lokale Variabeln
hu=value/100; //Hunderter definieren
ze=(value-=hu*100)/10; //Zehner definieren
ei=value-ze*10; //Einer definieren
hu<<=8;
ze<<=4;
return hu|ze|ei;
}
unsigned char Mirror_Byte(unsigned char value)
{
unsigned char i,rw;
for(i=rw=0;i<=7;i++)
if(bit_test(value,i))
bit_set(rw,7-i);
return rw;
}
unsigned char Bitsumme(unsigned char value)
{
unsigned char i,result;
for(i=result=0;i<=7;i++)
result+=bit_test(value,i);
return result;
}
unsigned char Bitnummer(unsigned char value)
{
unsigned char i,result;
result=0xFF;
for(i=0;i<=7;i++)
result = bit_test(value,i) ? i : result;
return result;
}