NetBurner 3.5.8
PDF Version
MODRT1171/include/pins.h
1/*NB_REVISION*/
2
3/*NB_COPYRIGHT*/
4
5
6#ifndef _NB_PINS_H_
7#define _NB_PINS_H_
8
9#include <pinconstant.h>
10#include <cpu_pins.h>
11
12#define PLAT_PIN_COUNT 100 // 4 pins are tied to *two* cpu pads
13#define PLAT_PIN_COUNT_P1 50
14#define PLAT_PIN_COUNT_P2 50
15
16class FastIOArray;
17class PinIOArray
18{
19 static const PinIO::def_t cpuPinMap[PLAT_PIN_COUNT];
20 friend class FastIOArray;
21public:
22 PinIO operator[] ( int n ) const
23 {
24 if ((n <= 0) || (n > PLAT_PIN_COUNT))
25 {
26 return PinIO(PinIO::def_t(PinDef_INVALID).port,
27 PinIO::def_t(PinDef_INVALID).idx);
28 }
29
30 return PinIO( cpuPinMap[n-1].port, cpuPinMap[n-1].idx );
31 };
32 static bool setNonGpioPull(PinIO &pin, PinIO::pull_t pull);
33 static bool _ivSet(PinIO &pin, bool val);
34 static bool _ivRead(const PinIO &pin);
35};
36
37class FastIOArray
38{
39public:
40 FastIO operator[] ( int n ) const
41 {
42 if ((n <= 0) || (n > PLAT_PIN_COUNT))
43 {
44 return FastIO(PinIO::def_t(PinDef_INVALID).port,
45 PinIO::def_t(PinDef_INVALID).idx);
46 }
47
48 return FastIO( PinIOArray::cpuPinMap[n-1].port, PinIOArray::cpuPinMap[n-1].idx );
49 };
50 PinIO::def_t getDef( int n ) const
51 {
52 if ((n <= 0) || (n > PLAT_PIN_COUNT))
53 {
54 return PinIO::def_t(PinDef_INVALID);
55 }
56 return PinIOArray::cpuPinMap[n-1];
57 };
58 friend class PinIOArray;
59};
60
61
62extern const FastIOArray FastPins;
63extern const PinIOArray Pins;
64
65class PinIOArrayP1
66{
67public:
68 PinIO operator[] ( int n ) const
69 {
70 if ((n <= 0) || (n > PLAT_PIN_COUNT_P1))
71 {
72 return PinIO(PinIO::def_t(PinDef_INVALID).port,
73 PinIO::def_t(PinDef_INVALID).idx);
74 }
75 return Pins[n];
76 };
77};
78
79class PinIOArrayP2
80{
81public:
82 PinIO operator[] ( int n ) const
83 {
84 if ((n <= 0) || (n > PLAT_PIN_COUNT_P2))
85 {
86 return PinIO(PinIO::def_t(PinDef_INVALID).port,
87 PinIO::def_t(PinDef_INVALID).idx);
88 }
89
90 return Pins[n+50];
91 };
92};
93
94class FastIOArrayP1
95{
96public:
97 PinIO operator[] ( int n ) const
98 {
99 if ((n <= 0) || (n > PLAT_PIN_COUNT_P1))
100 {
101 return PinIO(PinIO::def_t(PinDef_INVALID).port,
102 PinIO::def_t(PinDef_INVALID).idx);
103 }
104
105 return FastPins[n];
106 };
107};
108
109class FastIOArrayP2
110{
111public:
112 PinIO operator[] ( int n ) const
113 {
114 if ((n <= 0) || (n > PLAT_PIN_COUNT_P2))
115 {
116 return PinIO(PinIO::def_t(PinDef_INVALID).port,
117 PinIO::def_t(PinDef_INVALID).idx);
118 }
119
120 return FastPins[n+50];
121 };
122};
123
124extern const PinIOArrayP1 P1;
125extern const PinIOArrayP2 P2;
126extern const FastIOArrayP1 FastP1;
127extern const FastIOArrayP2 FastP2;
128
129#endif /* _NB_PINS_H_ */
pull_t
Pin pullup and pulldown modes to configure the managed pin(s).
Definition coldfire/cpu/MCF5441X/include/cpu_pins.h:96