|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
blay44 Član
Pridružen-a: Ned 19 Dec 2010 18:17 Prispevkov: 603 Aktiv.: 3.73
|
Objavljeno: Ned Jan 05, 2020 6:27 pm Naslov sporočila: Hitri 10bitni PWM za Mego |
|
|
Prevečkrat že razlagam okoli, pa bi izkoristil forum za tablo.
Zdej, z Arduinom nism glih domač. Pač imam raje C ali asm, zato kode glih ne ocenjujte.
Gre samo za način kako nastaviti timerje 1,3,4,5.
Timer0 raje ne uporabljajte, ker ga uporablja sam Arduino.
Paziti je še potrebno, katere zunanje knjižnice uporabljate(recimo servo.h) in le te uporabljajo naše timerje.
Koda: |
#include "pins_arduino.h"
#include "wiring_private.h"
//mega2560 PWM z 10bitno rezolucijo na 15kHz
int brisi = 7; // postavitev tccrxb na registea na 0
int myPrescaler = 1; //delitelj clocka je brez deljenja
int sprejem = 0;
int pinPWM = 11; //OC1A tomerja1 izhodni pin
void setup()
{
pinMode(LED_BUILTIN, OUTPUT);
pinMode(pinPWM, OUTPUT);
Serial.begin(9600);
TCCR1B &= ~brisi; //timer1
TCCR1B |= myPrescaler; //timer1
//nastavitev timer1 na 10bit rezulucije, Fpwm= 15,63kHz
//za pin OC1A/PB5/arduino pin11
// za 8 bitno rezolucijo ni potrebno tega nastavljati
sbi(TCCR1A, COM1A1);
sbi(TCCR1A, WGM10); //za 9 bit mora WGM1 = 0 in ga ne postavljamo
sbi(TCCR1A, WGM11);
sbi(TCCR1B, WGM12);
}
void loop()
{
//kontrola pwmja preko serijskega porta0: 9600,n,1
if (Serial.available() > 0)
{
digitalWrite(LED_BUILTIN, HIGH); //prizgi lucko
sprejem = Serial.parseInt();
//analogWrite(pinPWM, sprejem); za 8bitno rezolucijo in brez glave
OCR1AH = highByte(sprejem);
OCR1AL = lowByte(sprejem);
Serial.print(F("Sprejel sem: "));
Serial.println(sprejem);
digitalWrite(LED_BUILTIN, LOW); //ugasni lucko
}
//nekaj dalje
}
|
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 48 dni
Powered by phpBB © 2001, 2005 phpBB Group
|