Elektronika.lt
 2025 m. sausio 3 d. Projektas | Reklama | Žinokite | Klausimai | Prisidėkite | Atsiliepimai | Kontaktai
Paieška portale
EN Facebook RSS

 Kas naujo  Katalogas  Parduotuvės  Forumas  Tinklaraščiai
 Pirmas puslapisSąrašas
 Forumas / + pokalbiai
 - Paieška forume
 - D.U.K. / Forumo taisyklės
 - Narių sąrašas
 - Registruotis
 - Prisijungti

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
 
  
Puslapis 11
Pradėti naują temą  Atsakyti į pranešimą Rodyti ankstesnį pranešimą :: Rodyti kitą pranešimą 
 PIC PWM BIT
PranešimasParašytas: 2015 10 19, 16:43 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ernestasd
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
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
PranešimasParašytas: 2015 10 19, 17:36 Pranešti apie taisyklių pažeidimą Atsakyti su citata
AlgisL
Senbuvis
Senbuvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą
i while cikla idek
Kodas:

PWM1_Set_Duty(greitis);
 PIC PWM BIT
PranešimasParašytas: 2015 10 20, 06:19 Pranešti apie taisyklių pažeidimą Atsakyti su citata
Ingo
Užkietėjęs dalyvis
Užkietėjęs dalyvis
Peržiūrėti vartotojo aprašymą Siųsti asmeninį pranešimą Siųsti el. laišką Apsilankyti vartotojo tinklapyje
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]
Pradėti naują temą  Atsakyti į pranešimą
 
Forumo sistema: phpBB
 „Google“ paieška forume
 Kas naujesnio?
 Naujos temos forume

Global electronic components distributor – Allicdata Electronics

Electronic component supply – „Eurodis Electronics“

LOKMITA – įvairi matavimo, testavimo, analizės ir litavimo produkcija

Full feature custom PCB prototype service

Sveiki ir ekologiški maisto produktai

Mokslo festivalis „Erdvėlaivis Žemė

LTV.LT - lietuviškų tinklalapių vitrina

„Konstanta 42“

Technologijos.lt

Buitinė technika ir elektronika internetu žemos kainos – Zuza.lt

www.esaugumas.lt – apsaugok savo kompiuterį!

PriedaiMobiliems.lt – telefonų priedai ir aksesuarai

Draugiškas internetas

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
Reklama
‡ 1999– © Elektronika.lt | Autoriaus teisės | Privatumo politika | Atsakomybės ribojimas | Turinys | Reklama | Kontaktai LTV.LT - lietuviškų tinklalapių vitrina
Script hook v, Openiv, Menyoo
gta5mod.net
FS25 Mods, FS25 Tractors, FS25 Maps
fs25mods.lt
Optical filters, UV optics, electro optical crystals
www.eksmaoptics.com
Reklamos paslaugos
SEO sprendimai

www.addad.lt
Elektroninių parduotuvių optimizavimas „Google“ paieškos sistemai
www.seospiders.lt
FS22 mods, Farming simulator 22 mods,
FS22 maps

fs22.com
Reklama


Reklama