def main(): # setup wiringpi if wipi.wiringPiSetup(): print("Failing to setup wiringPi") sys.exit() # wPi Port 24 corresponds to Phys Pin 35 PWM_PORT = 24 # parameters to compute frequency RANGE = 480 DIVISOR = 2 # duty cycle percentage PERCENTAGE_DUTY_CYCLE = 40 # duty_cycle = ( range * duty_cycle(%) ) / 100 DUTY_CYCLE = (RANGE * PERCENTAGE_DUTY_CYCLE) / 100 #*** setting PWM parameters ** # sets port to ALT MODE-5 FSEL_ALT5 = 0b010 wipi.pinModeAlt(PWM_PORT, FSEL_ALT5) # sets Mark/Space mode wipi.pwmSetMode(wipi.GPIO.PWM_MODE_MS) # frequency = 19.2e6 / ( DIVISOR x RANGE ) wipi.pwmSetRange(RANGE) wipi.pwmSetClock(DIVISOR) #*** # generates PWM at a determined duty cycle wipi.pwmWrite(PWM_PORT, DUTY_CYCLE) F_BASE = 19.2e6 FREQUENCY_OUT = F_BASE / (RANGE * DIVISOR) print("PWM output pin: 35") print("PWM frequency: {} Hz".format(FREQUENCY_OUT)) print("PWM duty cycle: {}".format((DUTY_CYCLE * 100) / RANGE)) c = raw_input("To finish, press \'Enter\'") # turns off pwm output wipi.pwmWrite(PWM_PORT, 0)
def read_ATR(serial): wiringpi.pinMode(TX, INPUT) wiringpi.pullUpDnControl(TX, PUD_UP) first = wiringpi.millis() data_str = '' while (wiringpi.millis() - first) < 100: if wiringpi.serialDataAvail(serial) > 0: first = wiringpi.millis() data = wiringpi.serialGetchar(serial) if (data < 16): data *= 16 data_str += ('{:02x}'.format(data)) + ' ' wiringpi.pullUpDnControl(TX, PUD_OFF) wiringpi.pinModeAlt(TX, 4) data_str = data_str.lstrip('00') return data_str
def read_response(serial, ser, length): wiringpi.pinMode(TX, INPUT) wiringpi.pullUpDnControl(TX, PUD_UP) first = wiringpi.millis() wiringpi.delay(50) ## Save all the data from RX excluding bounced data data_list = [] num_ser = wiringpi.serialDataAvail(serial) while (wiringpi.millis() - first) < 100: if wiringpi.serialDataAvail(serial) > 0: first = wiringpi.millis() data = wiringpi.serialGetchar(serial) if (wiringpi.serialDataAvail(serial) < (num_ser - length)): data_list.append('{:02x}'.format(data)) wiringpi.pullUpDnControl(TX, PUD_OFF) wiringpi.pinModeAlt(TX, 4) return data_list
def __restore_gpio_pins__(self): """ Restore HW I2C functionality on GPIO pins 2 & 3 """ wiringpi.pinModeAlt(3, 4) # restore ALT0 functionality on SCL pin wiringpi.pinModeAlt(2, 4) # restore ALT0 functionality on SDA pin self.BusActive = False