1 |
|
2 | * com74hc595.h
|
3 | *
|
4 | * Created on: 18.05.2015
|
5 | * Author: ericjahn
|
6 | */
|
7 | #ifndef _COM74HC595_H_
|
8 | #define _COM74HC595_H_
|
9 |
|
10 | // Anzahl der über Software-SPI anzusteuernde 74HC595 Bausteine
|
11 | #define COM74HC595_SIZE 1
|
12 |
|
13 | // Anzahl der Bits über alle Bausteine
|
14 | #define COM74HC595_BYTES COM74HC595_SIZE * 8
|
15 |
|
16 | // PORT am Mikrokontroller über den der Software SPI erfolgen soll
|
17 | #define PORT_com74hc595 PORTB
|
18 | #define PORT_SER PB0 // 74HC595 PIN 14
|
19 | #define PORT_SCK PB1 // 74HC595 PIN 11
|
20 | #define PORT_RCK PB2 // 74HC595 PIN 12
|
21 | #define PORT_OE PB3 // 74HC595 PIN 13
|
22 |
|
23 | #define DDR_com74hc595 DDRB
|
24 | #define DDR_SER DDB0 // 74HC595 PIN 14
|
25 | #define DDR_SCK DDB1 // 74HC595 PIN 11
|
26 | #define DDR_RCK DDB2 // 74HC595 PIN 12
|
27 | #define DDR_OE DDB3 // 74HC595 PIN 13
|
28 |
|
29 | /*
|
30 | Falls eine Steuerung über /OE PIN 13 des 74HC595 gewünscht ist,
|
31 | muss PIN 13 per Pullup Widerstand gesetzt werden, dass sorgt
|
32 | dafür, dass der 74HC595 nach einem Reset in einem definierten
|
33 | Zustand gesetzt werden kann.
|
34 | Der 74HC595 wird in der Initialisierungsroutine mit 0x00 initialisiert.
|
35 | Dadurch, dass /OE über den Pullup-Widerstand auf HIGH gezogen wurde,
|
36 | befindet sich der 74HC595 im Tristate-Modus. Wird jetzt /OE auf LOW
|
37 | gezogen, steht der gesetzte Zustand an den Ports an.
|
38 | */
|
39 | #define WITH_OE
|
40 |
|
41 | // globales Array zur Speicherung der Bitmuster
|
42 | extern unsigned char com74hc595[];
|
43 |
|
44 | // Initialisierung der Ports im Mikrocontroller
|
45 | extern void com74hc595_init(void);
|
46 |
|
47 | // Ausgabe der Bitmuster an die 74HC595
|
48 | extern void com74hc595_out(void);
|
49 |
|
50 | // setzen eines einzelnen Bits innerhalb des Arrays
|
51 | extern void com74hc595_setBit( unsigned char BitNumber );
|
52 |
|
53 | // zurücksetzen eines einzelnen Bits innerhalb des Arrays
|
54 | extern void com74hc595_unsetBit( unsigned char BitNumber );
|
55 |
|
56 | // setzen eines ganzen Ports
|
57 | extern void com74hc595_setPort( unsigned char Port, unsigned char Bits );
|
58 |
|
59 | // zurücksetzen eines ganzen Ports
|
60 | extern void com74hc595_unsetPort( unsigned char Port );
|
61 |
|
62 | // setzt alle Bits auf logisch 1
|
63 | extern void com74hc595_setall(void);
|
64 |
|
65 | // setzt alle Bits auf logisch 0
|
66 | extern void com74hc595_unsetall(void);
|
67 |
|
68 | #endif /* _COM74HC595_H_ */
|