name.append("LSBFirst")

	if read_on == sw.ShiftOp.ClockMode.positive:
		name.append("inOnPos")
	elif read_on == sw.ShiftOp.ClockMode.negative:
		name.append("inOnNeg")
	if write_on == sw.ShiftOp.ClockMode.positive:
		name.append("outOnPos")
	elif write_on == sw.ShiftOp.ClockMode.negative:
		name.append("outOnNeg")
	name = "_".join(name)

	body = byte_shifter.generate(d, read_on, write_on)

	print(calling.generate(
		name=name,
		read_on=read_on,
		write_on=write_on,
		body=body))

print("""\
BYTE main() {
	BYTE data = 0xaa;

	data = ShiftByte_MSBFirst_inOnPos_outOnPos(data);
	data = ShiftByte_MSBFirst_inOnPos_outOnPos(data);
	data = ShiftByte_MSBFirst_inOnPos_outOnPos(data);
	return data;
}
""")
Example #2
0
	pad=True)

body += ["/* Ack / Stop Bit */"]
body += clock.clear().splitlines()
body += data.setup(pins.PinDirection.input).splitlines()
body += clock.set().splitlines()
# If carry is 1, then the bit was nacked
body += data.bit_to_carry().splitlines()
body += ["/* JC nacked */"]
# Loop here while bit is 0, clock stretching
body += data.bit_to_carry().splitlines()
body += ["/* JNC rel - */"]
# Success!
body += ["/* Success */"]
# Failure
body += ["/* Nacked response... */"]

print(calling.generate(
	name="i2cTest",
	read_on=read_on,
	write_on=write_on,
	body=body))

print("""\
BYTE main() {
	BYTE data = 0xaa;
	i2cTest(data);
	return 1;
}
""")
Example #3
0
                              pad=True)

body += ["/* Ack / Stop Bit */"]
body += clock.clear().splitlines()
body += data.setup(pins.PinDirection.input).splitlines()
body += clock.set().splitlines()
# If carry is 1, then the bit was nacked
body += data.bit_to_carry().splitlines()
body += ["/* JC nacked */"]
# Loop here while bit is 0, clock stretching
body += data.bit_to_carry().splitlines()
body += ["/* JNC rel - */"]
# Success!
body += ["/* Success */"]
# Failure
body += ["/* Nacked response... */"]

print(
    calling.generate(name="i2cTest",
                     read_on=read_on,
                     write_on=write_on,
                     body=body))

print("""\
BYTE main() {
	BYTE data = 0xaa;
	i2cTest(data);
	return 1;
}
""")
Example #4
0
        name.append("LSBFirst")

    if read_on == sw.ShiftOp.ClockMode.positive:
        name.append("inOnPos")
    elif read_on == sw.ShiftOp.ClockMode.negative:
        name.append("inOnNeg")
    if write_on == sw.ShiftOp.ClockMode.positive:
        name.append("outOnPos")
    elif write_on == sw.ShiftOp.ClockMode.negative:
        name.append("outOnNeg")
    name = "_".join(name)

    body = byte_shifter.generate(d, read_on, write_on)

    print(
        calling.generate(name=name,
                         read_on=read_on,
                         write_on=write_on,
                         body=body))

print("""\
BYTE main() {
	BYTE data = 0xaa;

	data = ShiftByte_MSBFirst_inOnPos_outOnPos(data);
	data = ShiftByte_MSBFirst_inOnPos_outOnPos(data);
	data = ShiftByte_MSBFirst_inOnPos_outOnPos(data);
	return data;
}
""")