Skip to content

Commit bd965ac

Browse files
committed
stuff
2 parents 4ec846c + 110700f commit bd965ac

File tree

228 files changed

+23473
-5535
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

228 files changed

+23473
-5535
lines changed
Lines changed: 208 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,208 @@
1+
//////////////////////////////////////////////////////////
2+
// D128Access Direct access the DIGIO-128 card
3+
// Directly access bits on the card from the Serial Port
4+
//////////////////////////////////////////////////////////
5+
6+
#include <LandBoards_Digio128V2.h>
7+
#include <LandBoards_I2CRPT01.h>
8+
9+
//////////////////////////////////////////////////////////
10+
// defines follow
11+
12+
#define SERIAL_DEBUG Serial
13+
14+
LandBoards_I2CRPT01 myI2CMux;
15+
16+
#define UUT_CARD_MUX_CH 0
17+
18+
Digio128 Dio128;
19+
20+
//////////////////////////////////////////////////////////
21+
// setup()
22+
//////////////////////////////////////////////////////////
23+
24+
void setup()
25+
{
26+
Serial.begin(9600);
27+
myI2CMux.begin();
28+
myI2CMux.setI2CChannel(UUT_CARD_MUX_CH);
29+
TWBR = 12; // go to 400 KHz I2C speed mode
30+
Serial.println(F("H=Set a bit High, L=Set a bit Low, R=Read bit (no dir change), P=Poll input bit"));
31+
Dio128.begin();
32+
}
33+
34+
//////////////////////////////////////////////////////////
35+
// loop()
36+
//////////////////////////////////////////////////////////
37+
38+
void loop()
39+
{
40+
int incomingByte = 0; // for incoming serial data
41+
uint8_t bitToCheck;
42+
uint8_t readValue;
43+
if (Serial.available() > 0)
44+
{
45+
// read the incoming byte:
46+
incomingByte = Serial.read();
47+
switch (incomingByte)
48+
{
49+
case 'H':
50+
case 'h':
51+
flushSerial();
52+
Serial.print("Bit to set to High (NEX): ");
53+
bitToCheck = getHexSerial();
54+
Serial.println("");
55+
flushSerial();
56+
writeBitDIGIO128(bitToCheck, 1);
57+
Serial.println("Completed write");
58+
break;
59+
case 'L':
60+
case 'l':
61+
flushSerial();
62+
Serial.print("Bit to clear to LOW (NEX): ");
63+
bitToCheck = getHexSerial();
64+
Serial.println("");
65+
flushSerial();
66+
writeBitDIGIO128(bitToCheck, 0);
67+
Serial.println("Completed write");
68+
break;
69+
case 'R':
70+
case 'r':
71+
Serial.print("Bit to read (NEX): ");
72+
flushSerial();
73+
bitToCheck = getHexSerial();
74+
Serial.println("");
75+
Dio128.pinMode(bitToCheck,INPUT);
76+
readValue = readBitDIGIO128(bitToCheck);
77+
Serial.print("Value: ");
78+
Serial.println(readValue, HEX);
79+
break;
80+
case 'P':
81+
case 'p':
82+
Serial.print("Bit to poll (NEX): ");
83+
flushSerial();
84+
bitToCheck = getHexSerial();
85+
Serial.println("");
86+
readValue = readBitDIGIO128(bitToCheck);
87+
Serial.print("Value: ");
88+
Serial.println(readValue, HEX);
89+
break;
90+
default:
91+
Serial.println(F("H=Set a bit High, L=Set a bit Low, R=Read bit (no dir change), P=Poll input bit"));
92+
break;
93+
}
94+
flushSerial();
95+
}
96+
}
97+
98+
//////////////////////////////////////////////////////////
99+
// void flushSerial(void)
100+
//////////////////////////////////////////////////////////
101+
102+
void flushSerial(void)
103+
{
104+
while (Serial.available() > 0)
105+
Serial.read();
106+
}
107+
108+
//////////////////////////////////////////////////////////////////////////////////////
109+
// uint8_t readBitDIGIO128(uint8_t bitToCheck)
110+
//////////////////////////////////////////////////////////////////////////////////////
111+
112+
uint8_t readBitDIGIO128(uint8_t bitToRead)
113+
{
114+
uint32_t rdVal;
115+
// Serial.println(F("\nreadBitDIGIO128() - reached function"));
116+
rdVal = Dio128.digitalRead(bitToRead);
117+
Serial.print(F("Read Value: "));
118+
Serial.println(rdVal);
119+
return(rdVal);
120+
}
121+
122+
//////////////////////////////////////////////////////////////////////////////////////
123+
// void writeBitDIGIO128(uint8_t bitToCheck, uint8_t bitWeiteValue)
124+
//////////////////////////////////////////////////////////////////////////////////////
125+
126+
void writeBitDIGIO128(uint8_t bitToWrite, uint8_t writeValue)
127+
{
128+
// Serial.println(F("\writeBitDIGIO128() - reached function"));
129+
Dio128.pinMode(bitToWrite,OUTPUT);
130+
Dio128.digitalWrite(bitToWrite,writeValue);
131+
}
132+
133+
//////////////////////////////////////////////////////////
134+
// uint32_t getHexSerial(void)
135+
//////////////////////////////////////////////////////////
136+
137+
uint32_t getHexSerial(void)
138+
{
139+
char inString[81];
140+
uint8_t hexVal;
141+
flushSerial();
142+
// Serial.println("getHexSerial() - reached function");
143+
readInSerialString(inString);
144+
// Serial.print("readInSerialString(): Returned: ");
145+
// Serial.println(inString);
146+
hexVal = stringToHex(inString);
147+
// Serial.print("stringToHex() - Returned: ");
148+
// Serial.println(bitToCheck);
149+
return (hexVal);
150+
}
151+
152+
//////////////////////////////////////////////////////////
153+
// uint32_t readInSerialString(char * myString)
154+
//////////////////////////////////////////////////////////
155+
156+
uint32_t readInSerialString(char * myString)
157+
{
158+
uint8_t lineCounter = 0;
159+
flushSerial();
160+
// Serial.println("readInSerialString() - reached function");
161+
while (1)
162+
{
163+
while (Serial.available() == 0);
164+
myString[lineCounter] = Serial.read();
165+
Serial.print(myString[lineCounter]);
166+
if ((myString[lineCounter] == '\n') || (myString[lineCounter] == '\r'))
167+
{
168+
myString[lineCounter] = 0;
169+
// Serial.print("The String: ");
170+
// Serial.println(myString);
171+
// Serial.print("String Length: ");
172+
// Serial.println(lineCounter);
173+
return lineCounter;
174+
}
175+
lineCounter++;
176+
}
177+
}
178+
179+
//////////////////////////////////////////////////////////
180+
// uint32_t stringToHex(String theStringValue)
181+
//////////////////////////////////////////////////////////
182+
183+
uint32_t stringToHex(char * theStringValue)
184+
{
185+
uint8_t hexVal = 0;
186+
uint8_t linePtr = 0;
187+
// Serial.println("stringToHex() - reached function");
188+
while (theStringValue[linePtr] != 0)
189+
{
190+
if ((theStringValue[linePtr] >= '0') && (theStringValue[linePtr] <= '9'))
191+
hexVal = (hexVal * 16) + (theStringValue[linePtr] - '0');
192+
else if ((theStringValue[linePtr] >= 'a') && (theStringValue[linePtr] <= 'f'))
193+
hexVal = (hexVal * 16) + (theStringValue[linePtr] - 'a' + 10);
194+
else if ((theStringValue[linePtr] >= 'A') && (theStringValue[linePtr] <= 'F'))
195+
hexVal = (hexVal * 16) + (theStringValue[linePtr] - 'A' + 10);
196+
else
197+
{
198+
Serial.println("Conversion error");
199+
return (0);
200+
}
201+
linePtr++;
202+
}
203+
// Serial.print("stringToHex() - returning: ");
204+
// Serial.println(hexVal,HEX);
205+
return (hexVal);
206+
}
207+
208+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// DIGIO16-I2C Example code
2+
// Make all 16 lines outputs
3+
// Blink each line, one at a time
4+
5+
#include <Wire.h>
6+
#include "Adafruit_MCP23017.h"
7+
#include "LandBoards_I2CRPT08.h"
8+
9+
Adafruit_MCP23017 mcp0;
10+
11+
LandBoards_I2CRPT08 mux;
12+
13+
void setup() {
14+
mux.begin(0);
15+
mux.setI2CChannel(0);
16+
mcp0.begin(0); // use default address 0
17+
TWBR = 12; // go to 400 KHz I2C speed mode
18+
19+
20+
uint8_t chip;
21+
uint8_t port;
22+
23+
for (chip = 0; chip < 1; chip++)
24+
{
25+
for (port = 0; port < 16; port++)
26+
{
27+
mcp0.pinMode(port, OUTPUT);
28+
}
29+
}
30+
}
31+
32+
// flip the pin #0 up and down
33+
34+
void loop() {
35+
36+
uint8_t chip;
37+
uint8_t port;
38+
39+
for (port = 0; port < 16; port++)
40+
{
41+
mcp0.digitalWrite(port, HIGH);
42+
delay(250);
43+
mcp0.digitalWrite(port, LOW);
44+
// delay(250);
45+
}
46+
}
47+
Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
// DIGIO16-I2C Example code
2+
// Make all 16 lines outputs
3+
// Blink each line, one at a time
4+
5+
#include <Wire.h>
6+
#include "Adafruit_MCP23017.h"
7+
#include "LandBoards_I2CRPT08.h"
8+
9+
Adafruit_MCP23017 mcp0;
10+
11+
LandBoards_I2CRPT08 mux;
12+
13+
void setup() {
14+
mux.begin(0);
15+
mux.setI2CChannel(0);
16+
mcp0.begin(0); // use default address 0
17+
TWBR = 12; // go to 400 KHz I2C speed mode
18+
19+
20+
uint8_t chip;
21+
uint8_t port;
22+
23+
for (chip = 0; chip < 1; chip++)
24+
{
25+
for (port = 0; port < 16; port++)
26+
{
27+
mcp0.pinMode(port, OUTPUT);
28+
}
29+
}
30+
}
31+
32+
// flip the pin #0 up and down
33+
34+
void loop() {
35+
36+
uint8_t chip;
37+
uint8_t port;
38+
39+
for (port = 0; port < 16; port++)
40+
{
41+
mcp0.digitalWrite(port, HIGH);
42+
delay(250);
43+
mcp0.digitalWrite(port, LOW);
44+
// delay(250);
45+
}
46+
}
47+
Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
// DIGIO16-I2C Example code
2+
// Make all 16 lines outputs
3+
// Blink each line, one at a time
4+
5+
#include <Wire.h>
6+
#include <LandBoards_I2CIO8.h>
7+
#include "LandBoards_I2CRPT08.h"
8+
9+
I2CIO8 myI2CIO8;
10+
LandBoards_I2CRPT08 mux;
11+
12+
void setup()
13+
{
14+
uint8_t port;
15+
16+
mux.begin(0); // start the mux
17+
mux.setI2CChannel(0);
18+
myI2CIO8.begin(0); // use default address 0
19+
TWBR = 12; // go to 400 KHz I2C speed mode
20+
21+
for (port = 0; port < 4; port++)
22+
myI2CIO8.pinMode(port, OUTPUT);
23+
}
24+
25+
// flip the pin #0 up and down
26+
27+
void loop()
28+
{
29+
uint8_t port;
30+
31+
for (port = 0; port < 4; port++)
32+
{
33+
myI2CIO8.digitalWrite(port, HIGH);
34+
delay(250);
35+
myI2CIO8.digitalWrite(port, LOW);
36+
}
37+
}
38+

0 commit comments

Comments
 (0)