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; } """)
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; } """)
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; } """)
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; } """)