|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 01 03, 12:32. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Mikrovaldikliai » PIC PWM BIT
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
|
|
PIC PWM BIT |
Parašytas: 2015 10 19, 16:43 |
|
|
|
Sveiki. Gal paaiškintūmėt kaip teisingai nustatyti bitus, kad veiktų PWM ?
Naudoju PIC16F628A. Datasheet'e parašyta :
9.3.3 SET-UP FOR PWM OPERATION
1. Set the PWM period by writing to the PR2
register.
2. Set the PWM duty cycle by writing to the
CCPR1L register and CCP1CON<5:4> bits.
3. Make the CCP1 pin an output by clearing the
TRISB<3> bit.
4. Set the TMR2 prescale value and enable Timer2
by writing to T2CON.
Kodas: |
int greitis = 100; // pradinis greitis
void main()
{
TRISA = 0b00000011; // input a0 ir a1
TRISB = 0b00000000; // ouput b visi
PORTA = 0b00000000; // visi A low
T2CON.F1 = 00; // 00 = 1:1 Prescaler Value
T2CON.F2 = 1; // 1 = Timer2 is on
PCON = 0b00001000; // 4 mhz vidinis
CMCON = 0b00000111; // visi digital
OPTION_REG.F7 = 0; // pull resistoriai
PWM1_Init(4000); // initialize
PWM1_Start(); //startas
PWM1_Set_Duty(greitis); //ciklas
while(1)
{
if(PORTA.F0 == 1){ //didinam cikla
greitis++;
};
if(PORTA.F1 == 1){ //mazinam cikla
greitis--;
};
}
}
|
Kaip supratau dalį reikalavimų, kad veiktų PWM jau kompaileris bitus pats nustato duty cycle ir period. Tik nesuprantu kodėl man nereguoja mygtukai PORTA 0 ir 1. |
|
|
|
|
|
|
PIC PWM BIT |
Parašytas: 2015 10 19, 17:36 |
|
|
|
i while cikla idek
Kodas: |
PWM1_Set_Duty(greitis);
|
|
|
|
|
|
|
|
PIC PWM BIT |
Parašytas: 2015 10 20, 06:19 |
|
|
|
Visų pirma, nuspausto mygtuko salygoje turėtum įvesti kažkokį tai delay, kitaip tavo greitis, dar nespėjus atleisti mygtuko, iskarto pasieks labai didelę reikšmę.
Kodas: |
while(1)
{
if(PORTA.F0 == 1){ //didinam cikla
delay_ms(300);
greitis++;
PWM1_Set_Duty(greitis);
};
if(PORTA.F1 == 1){ //mazinam cikla
delay_ms(300);
greitis--;
PWM1_Set_Duty(greitis);
};
}
|
Antra:
Pagal programos kodą, prie uC inputų tu turi jungti pull-down rezistorius , ir
nuspaudus mygtuką paduoti VCC.
Nezinau ar toks yra standartas, bet as visada prie inputo jungiu pull-up resistorius (paprastai 10kom) ir mygtuka jungiu prie GND. Tuomet nuspausto mygtuko salyga atrodytų taip:
if(PORTA.F1 == 0){kodas}
Na kaip pvz.cia: https://learn.sparkfun.com/tutorials/pull-up-resistors
Kartais, naudojant pull-up, patogumas buna tame, kad galima nejungti išorinių pull-up, o panaudoti vidinius programuojamus uC, t.y kaip kad tu ir parašei savo kode : OPTION_REG.F7 = 0; tačiau čia tu įjungei PORTB pull-ups , (PORTA neturi vidinių pull-up), o mygtukus jungi prie PORTA, ir dar neaišku kaip ten juos pajungei.[/url] |
|
|
|
|
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|
|
|