Difference between revisions of "ME333 Sample Code"

From Mech
Jump to navigationJump to search
Line 56: Line 56:
* [[Media:NU32_rcservo_pwm_example.c|NU32_rcservo_pwm_example.c]]: Use a PWM pin to set the position of the servo (note you only have 5 PWM pins)
* [[Media:NU32_rcservo_pwm_example.c|NU32_rcservo_pwm_example.c]]: Use a PWM pin to set the position of the servo (note you only have 5 PWM pins)
* [[Media:NU32_rcservo_digio_example.c|NU32_rcservo_digio_example.c]]: Use any digital IO pin and a timer to set the position of the servo
* [[Media:NU32_rcservo_digio_example.c|NU32_rcservo_digio_example.c]]: Use any digital IO pin and a timer to set the position of the servo

'''Using RS232'''
* Simple UART communication
* UART with hardware flow control

'''Using I2C'''
* MAX518 8bit I2C DAC
* NAU7802 24bit I2C ADC
* PCF8570 2kbit I2C SRAM

'''Using SPI'''
* MCP4922 12bit SPI DAC
* MCP3008 10bit SPI ADC
* Microchip 23k256 256kbit SPI SRAM

'''Using CAN'''
* Creating a CAN bus

'''Data logging on a uSD card'''
* Using the Microchip FAT32 library, AN1045

'''Programming the on board flash'''
* Flash self programming

'''Using the RTCC'''
* Keeping time

Revision as of 12:12, 3 August 2012

Simple PIC

  • simplePIC.c: Flashes LEDs on the NU32 unless the USER button is pressed.

NU32 library, header file, procdefs, and terminal comm test

Analog to digital

  • ADC_Read2.c: Reads two analog inputs repetitively and prints the results to the user's terminal.
  • ADC_Read2_LCD.c Reads two analog inputs repetitively and prints the results to the LCD.

Digital I/O

  • DIGIO_sfrs.c: Digital I/O and change notification using SFR manipulation.
  • DIGIO_plib.c: Digital I/O and change notification using the peripheral library.

Interrupts

LCD code

Output compare (PWM)

  • OC_PWM_nolib.c: Set up PWM by setting SFRs.
  • OC_PWM_lib.c: Set up PWM using peripheral library functions.
  • OC_square_wave.c: Alternate between two different PWM duty cycles at 1 Hz. PWM is at 100 kHz and can be low-pass filtered to get a square wave analog output.

Counter/timer

DSP and FFT

Reading a quadrature encoder with the dsPIC33FJ12MC201 breakout board

Controlling a stepper motor with the TB6612

Controlling an RC servo motor

Using RS232

  • Simple UART communication
  • UART with hardware flow control

Using I2C

  • MAX518 8bit I2C DAC
  • NAU7802 24bit I2C ADC
  • PCF8570 2kbit I2C SRAM

Using SPI

  • MCP4922 12bit SPI DAC
  • MCP3008 10bit SPI ADC
  • Microchip 23k256 256kbit SPI SRAM

Using CAN

  • Creating a CAN bus

Data logging on a uSD card

  • Using the Microchip FAT32 library, AN1045

Programming the on board flash

  • Flash self programming

Using the RTCC

  • Keeping time