Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- # RMT1 5/15/22 rr
- # continuous 5 MHz square wave
- import esp32
- from machine import Pin
- r = esp32.RMT(0, pin=Pin(22), clock_div=8)
- r.loop(True)
- r.write_pulses((1,0))
- #RMT2 5/15/22 rr
- # configure 7 channels to output different frequency square waves simultaneously
- import esp32
- from machine import Pin
- r15 = esp32.RMT(0, pin=Pin(15), clock_div=160) # 250,000 Hz pin D15
- r16 = esp32.RMT(1, pin=Pin(16), clock_div=80) # 500,000 Hz pin RX2
- r17 = esp32.RMT(2, pin=Pin(17), clock_div=40) # 1,000,000 Hz pin TX2
- r18 = esp32.RMT(3, pin=Pin(18), clock_div=20) # 2,000,000 Hz pin D18
- r19 = esp32.RMT(4, pin=Pin(19), clock_div=16) # 2,500,000 Hz pin D19
- r21 = esp32.RMT(5, pin=Pin(21), clock_div=10) # 4,000,000 Hz pin D21
- r22 = esp32.RMT(6, pin=Pin(22), clock_div=8) # 5,000,000 Hz pin D22
- r15.loop(True), r16.loop(True), r17.loop(True), r18.loop(True)
- r19.loop(True), r21.loop(True), r22.loop(True)
- r15.write_pulses((1, 0))
- r16.write_pulses((1, 0))
- r17.write_pulses((1, 0))
- r18.write_pulses((1, 0))
- r19.write_pulses((1, 0))
- r21.write_pulses((1, 0))
- r22.write_pulses((1, 0))
- #RMT3 5/15/22/rr
- # read the RMT RAM configured by the r.write_pulses statement
- import esp32
- from machine import mem32, Pin
- from micropython import const
- RMT_RAM1 = const(0x3FF56800) # RMT RAM pulses 1-2; start of channel 0 RAM
- RMT_RAM2 = const(0x3FF56804) # RMT RAM pulses 3-4
- RMT_RAM3 = const(0x3FF56808) # RMT RAM pulses 5-6
- RMT_RAM4 = const(0x3FF5680C) # RMT RAM pulses 7-8
- RMT_RAM5 = const(0x3FF56810) # RMT RAM pulses 9-10
- RMT_RAM6 = const(0x3FF56814) # RMT RAM zero to indicate end of transmission
- r = esp32.RMT(0, pin=Pin(22), clock_div=8, idle_level=False)
- r.write_pulses((10, 9, 8, 7, 6, 5, 4, 3, 2, 1),1)
- value1 = '{:032b}'.format(int(hex(mem32[RMT_RAM1])))
- print('RMT_RAM1 =',' '.join(value1[i:i+4] for i in range(0,len(value1),4)))
- value2 = '{:032b}'.format(int(hex(mem32[RMT_RAM2])))
- print('RMT_RAM2 =',' '.join(value2[i:i+4] for i in range(0,len(value2),4)))
- value3 = '{:032b}'.format(int(hex(mem32[RMT_RAM3])))
- print('RMT_RAM3 =',' '.join(value3[i:i+4] for i in range(0,len(value3),4)))
- value4 = '{:032b}'.format(int(hex(mem32[RMT_RAM4])))
- print('RMT_RAM4 =',' '.join(value4[i:i+4] for i in range(0,len(value4),4)))
- value5 = '{:032b}'.format(int(hex(mem32[RMT_RAM5])))
- print('RMT_RAM5 =',' '.join(value5[i:i+4] for i in range(0,len(value5),4)))
- value6 = '{:032b}'.format(int(hex(mem32[RMT_RAM6])))
- print('RMT_RAM6 =',' '.join(value6[i:i+4] for i in range(0,len(value5),4)))
- #RMT4 5/11/22 rr
- # practice code to format output
- value1 = 0x01234567 # plug in any 32 bit value
- print(hex(value1)) # hex, no leading zeroes
- print('0x'+'{:08X}'.format(value1)) # hex & leading zeroes
- print('{:010}'.format(int(hex(value1)))) # decimal & leading zeroes
- print('{:032b}'.format(int(hex(value1)))) # binary 32 bits
- value2 = ('{:032b}'.format(int(bin(value1)))) # binary 8 groups of 4 digits
- print(' '.join(value2[i:i+4] for i in range(0,len(value2),4)))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement