Ändra pwm frekvens på en Arduino Leonardo

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
thewho
Inlägg: 1098
Blev medlem: 28 november 2008, 08:46:10
Ort: Finland, Åland

Ändra pwm frekvens på en Arduino Leonardo

Inlägg av thewho »

Hejsan

Som några av er kanske vet så har jag byggt ett justerbart nätaggregat (säger man så?)
"problemet" är Arduinos relativt låga pwm frekvens (488/976Hz) vilket gör det svårt att få en fin utspänning.
Jag har googlat mig tokig på hur man egentligen ändrar den på en Leonardo (ATmega42u4). Jag hittar många svar på hur man gör det på dom andra (ATmega168/328)

Hittade den här sidan som verkar förklara de mesta och som visar exempel i slutet.
Tråkigt nog förstår jag ändå inte... :doh: En barnlek för er gissar jag..

Så kan någon berätta vad jag ska ha var i koden för att få 62.5KHz på tex pin 9 så skulle jag vara väldigt tacksam! :)
Användarvisningsbild
Icecap
Inlägg: 26647
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Re: Ändra pwm frekvens på en Arduino Leonardo

Inlägg av Icecap »

Om pinnen inte är en dedikeret PWM-utgång skapas PWM vid att mjukvaran styr en portpinne. Om du i det läge vill ha en signifikant högre PWM-frekvens måste µC'n köra seriöst snabbare och det går ju inte.

Så utan att göra om mjukvaran rejält och faktisk veta vad du gör är det ganska kört.

Jag har tjatat om det förut men jag kan inte låta bli att upprepa mig: det är bra att dessa Arduino/whatever är enkla att komma igång med men jag ser inte att de ger de inblandade en inblick i vad de egentligen gör och begär av hårdvaran.

Men ett svar som kanske kan användas: du behöver att använda den PWM-funktion som finns i kretsen. Det är en hårdvara-funktion vilket gör att den PWM-funktion du använder nu inte har med den del att göra. Det betyder även att du har ganska få valmöjligheter på att välja pinnummer - om det inte bara finns en enda pinne.

Det är bara att ta tag i databladet för µC'n och läsa.
nifelheim
Den första
Inlägg: 2489
Blev medlem: 27 mars 2008, 22:31:16
Ort: stockholm

Re: Ändra pwm frekvens på en Arduino Leonardo

Inlägg av nifelheim »

OT: Tycker det där svaret var lite tråkigt, ungefär "allt är skit, läs databladet", är man på det humöret kan man väl låta bli att skriva :-)


Den sidan du länkade till förklara ju ganska bra, med klipp från databladet, default dividerar den klockan med 64 ,
du vill ändra det till 1 ( och få 64 gånger så hög PWM frekvens)

Exempelkoden har ju en funktion där du kan sätta mode "PWM62k" på timer 1, funkade inte det?
Skriv svar