Skip to content

Latest commit

 

History

History
28 lines (15 loc) · 1.94 KB

README.md

File metadata and controls

28 lines (15 loc) · 1.94 KB

Compatible with SAMD21, more description will be added soon, check examples to use the code. Its still in alpha. Tested with Arduino Zero and Seeduino Xiao m0+ With centered analog read you can have relative ground on A0 which is half of supply voltage to compare against.

Function descriptions and time they take: Simplified:

AnalogBegin(); - starts the ADC and attaches it to clock number 3. You can add one number inside to set resolution, deffault is 12 bit, possible are 8 10 and 12, then if you add one it will enable mode that centers values at half of the supply voltage, which now appears at pin A0, so you have negative and positive values, and after if you add 1 ADC will run in a freerun mode - it will keep taking reads again and again. Full form is AnalogBegin(Resolution, Centering, Freerun) ~ 30us

FastAnalogRead(pin); - Attaches the Analog pin and reads it, returns an integer. ~ 3us

AttachADC(pin, centering, gain) - Attaches to an analog pin and sets gain ~ 20us

FastAttachADC(pin, centering) - Attaches to an analog pin ~ 3us, less than FastAnalogRead

AnalogCollect() - Reads and collects an analog value from last attached pin ~ 3us, but bit less than FastAnalogRead

PWMBegin(pin, frequency) - begins running a pin at a specified frequency while attaching it to clock 8, minimum is 1 hz - calls PWMSetup. ~ 87us

PWMDuty(pin, dutycycle) - Sets the duty cycle at a specified number, in fractions. ~ 7us

PWMFrequency(pin, frequency) - changes the frequency, minimum 2 hz, if the pin previously had lower frequency selected may cause issues. ~40us

PWMSetup(pin, frequency, clock, Interrupts) - enables PWM, at a specidied pin, frequency which can go down to 0.00562 but it changes clock divisions, use clock 3-8. Enabling interrupts will make it call to Tch(); where you return duty cycle so it changes every cycle. ~ 124us, ~ 80us with frequency above 1hz

Osciloscope examples - can make a 10hz - 100khz up to 350ksps osciloscope out of your arduino.