Vítejte na Elektro Bastlírn?
Nuke - Elektro Bastlirna
  Vytvořit účet Hlavní · Fórum · DDump · Profil · Zprávy · Hledat na fóru · Příspěvky na provoz EB

Vlákno na téma KORONAVIRUS - nutná registrace


Nuke - Elektro Bastlirna: Diskuzní fórum

 FAQFAQ   HledatHledat   Uživatelské skupinyUživatelské skupiny   ProfilProfil   Soukromé zprávySoukromé zprávy   PřihlášeníPřihlášení 

PIC16F628A->PWM

 
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů
Zobrazit předchozí téma :: Zobrazit následující téma  
Autor Zpráva
ebastlirna



Založen: Oct 10, 2013
Příspěvky: 84

PříspěvekZaslal: pá září 19 2014, 21:11    Předmět: PIC16F628A->PWM Citovat

Dobrý den, když mám čas, učím se programovat MCU PIC, konkrétně PIC16F628A. A chtěl bych na svůj první mini projekt využít PWM modulaci. I když jsem se snažil to rozlouskat z datasheetu, tak jsem to stále nepochopil. Našla by se nějaká dobrá duše, která by mě aspoň nakopla a ukázala směr nebo mi trochu tuhle problematiku popsala? Budu rád za každou odpověď.

Naposledy upravil ebastlirna dne so září 20 2014, 18:52, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: so září 20 2014, 7:34    Předmět: Citovat

cau,to si se teda moc nesnazil .. Rolling Eyes
stahni si CZ datasit http://uloz.to/xjRg1yye/pic16f87xa-cz-pdf
a koukni sem http://www.module.ro/pwm.html
az si to projdes znovu tak si napis kod a ten dej sem , jinak to nema cenu
citace:
chtěl bych na svůj první mini projekt využít PWM modulaci
jako 1 projekt bys mel zacit s obycejnym blikanim pak pridat tlacitko, atd, snazit se musis ty, ja te maximalne pri takovehle snaze jen nakopnu
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
AB1



Založen: Nov 23, 2009
Příspěvky: 312

PříspěvekZaslal: so září 20 2014, 11:25    Předmět: Citovat

Jestli dokážeš nastavit přerušení čítače např. každých 10 mikrosec, můžeš začít s tímto softwarovým pwm:
kód:

//pseudokód

obsluha_preruseni_timer0:  // každých 10 us
   count = count +1        // počet přerušení
   
   if count = duty then vystup = 0
   
   if count = 100 then
      vystup = 1
      count = 0
   endif

 ------------------------------------

Loop:    // test
   duty = 10      // duty_cycle = 10%
   wait 300 ms
   duty = 20      // duty_cycle = 20%
   wait 300 ms
   duty = 30      // duty_cycle = 30%
   wait 300 ms
   // atd
   
   goto Loop


Jeden pwm cyklus trvá 100 * 10us = 1 ms.
Pwm frekvence je tedy 1 kHz.
Duty cycle (plnění) jde nastavit v krocích 1%.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ebastlirna



Založen: Oct 10, 2013
Příspěvky: 84

PříspěvekZaslal: so září 20 2014, 11:41    Předmět: Citovat

MiloPS3 napsal(a):
cau,to si se teda moc nesnazil .. Rolling Eyes
stahni si CZ datasit http://uloz.to/xjRg1yye/pic16f87xa-cz-pdf
a koukni sem http://www.module.ro/pwm.html
az si to projdes znovu tak si napis kod a ten dej sem , jinak to nema cenu
citace:
chtěl bych na svůj první mini projekt využít PWM modulaci
jako 1 projekt bys mel zacit s obycejnym blikanim pak pridat tlacitko, atd, snazit se musis ty, ja te maximalne pri takovehle snaze jen nakopnu


Děkuji za ten datasheet, v cz jsem našel jenom pic16f84.
A i ten kód je super, že je v ASM já nacházel jenom v C-ku...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: so září 20 2014, 16:06    Předmět: Citovat

na ten DS jsem chtel dat odkaz ale uz sem to nikde nenasel ,asi to uz smazaly, tak sem to upnul ja
staci pouzit G a najit ten spravny nazev , dneska uz se da opravdu hodne veci najit na netu...i kdyz to chvylku trva
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Chenzee



Založen: Jun 26, 2007
Příspěvky: 464
Bydliště: Vysočina

PříspěvekZaslal: so září 20 2014, 18:51    Předmět: Citovat

Jen si dávej pozor, v českých překladech jsou občas chyby. Takže doporučuji mít po ruce i originál a důležité pasáže zkontrolovat.
_________________
Žádnej učenej z nebe nespadl ...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
hakamusai



Založen: Apr 17, 2007
Příspěvky: 943

PříspěvekZaslal: so září 20 2014, 19:08    Předmět: Citovat

Neví někdo o překladu datasheetu 16F887 ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Chenzee



Založen: Jun 26, 2007
Příspěvky: 464
Bydliště: Vysočina

PříspěvekZaslal: ne září 21 2014, 4:54    Předmět: Citovat

O jeho existenci vážně pochybuji. Ale můžeš si přečíst 877A, ten v CZ je a pak se podívat na 887. Ty dva obvody jsou si hooodně podobné (neříkám stejné!), ale ty rozdíly najdeš a určitě jim porozumíš. Jinak jakmile se tomu dostaneš trošičku pod kůži, bude ti stačit jen AJ, páč ono je to u PICů rodiny 16F stále stejné (nebo hooodně podobné).
_________________
Žádnej učenej z nebe nespadl ...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Pawalo



Založen: Oct 06, 2005
Příspěvky: 87
Bydliště: Tábor

PříspěvekZaslal: ne září 21 2014, 6:10    Předmět: Citovat

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ebastlirna



Založen: Oct 10, 2013
Příspěvky: 84

PříspěvekZaslal: po říjen 06 2014, 16:25    Předmět: Citovat

Po delší době, zdravím všechny. Když jsem měl volnou chvíli, pročítal jsem si datasheet i příklady a asi nějak bych to dal do kupy, ale ještě mi není jasný jak mám použít uváděné vzorce v datasheetu. Vůbec nevím jak do nich správně dosadit. Může mi je někdo prosím objasnit?

Perioda opakovací frekvence PWM
1/ T = [(PR2) + 1] • 4 • Tosc • (TMR2 dělicí poměr předděličky Timer2)

2/ Střída PWM = (CCPR1L:CCP1CON<5:4>) • Tosc • (TMR2 dělicí poměr předděličky Timer2)

Děkuji.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: po říjen 06 2014, 16:55    Předmět: Citovat

asi ti primo neodpovim..
mas nejakej duvod pouzit nejakou pozadovanou frevvenci ?

zapni si TMR2 , povol preruseni , dej si tam breakpoint a zmer si to , to bude frekvence PWM, zmenou preddelicky si to upravis.. (delic po nema na frekvenci PWM vliv,takze nastavit 1:1)

stridu nastavujes v CCPR1L , pouzival sem jen 8bit rozliseni (rek bych dostacujici) , 1krok=0.39%...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ebastlirna



Založen: Oct 10, 2013
Příspěvky: 84

PříspěvekZaslal: po říjen 06 2014, 18:12    Předmět: Citovat

Děkuji za radu. No přesnou frekvenci potřebuji, abych rozblikal ledku zhruba na 5Hz a přitom mohl měnit intenzitu. Například, že si udělám 3 stavy. Kdy
1. bude blikat 5Hz a střída bude 100%.
2. opět 5 Hz a střída 70%
3. 5 Hz střída a střída 40 %

Možná, že tenhle koncept je nesmyslný nebo ne?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
MiloPS3



Založen: Aug 07, 2010
Příspěvky: 262

PříspěvekZaslal: po říjen 06 2014, 20:39    Předmět: Citovat

hm. napis jak bys to udelal.... jen tak heslovite

ja bych to udelal takle : nastavit tmr2 na 1:2/4 treba. tmr1 na preruseni po 100ms (zalezi na kolika ti to bezi) v tom si nastavovat stridu toglovane 0 nebo promena . v mainu si krmit promenou 40% nebo 70% nebo 100% + se muze mcu dloubat v nose....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Zobrazit příspěvky z předchozích:   
Přidat nové téma   Zaslat odpověď       Obsah fóra Diskuzní fórum Elektro Bastlírny -> Programování PIC, ATMEL, EEPROM a dalších obvodů Časy uváděny v GMT + 1 hodina
Strana 1 z 1

 
Přejdi na:  
Nemůžete odesílat nové téma do tohoto fóra.
Nemůžete odpovídat na témata v tomto fóru.
Nemůžete upravovat své příspěvky v tomto fóru.
Nemůžete mazat své příspěvky v tomto fóru.
Nemůžete hlasovat v tomto fóru.
Nemůžete připojovat soubory k příspěvkům
Můžete stahovat a prohlížet přiložené soubory

Powered by phpBB © 2001, 2005 phpBB Group
Forums ©
Nuke - Elektro Bastlirna

Informace na portálu Elektro bastlírny jsou prezentovány za účelem vzdělání čtenářů a rozšíření zájmu o elektroniku. Autoři článků na serveru neberou žádnou zodpovědnost za škody vzniklé těmito zapojeními. Rovněž neberou žádnou odpovědnost za případnou újmu na zdraví vzniklou úrazem elektrickým proudem. Autoři a správci těchto stránek nepřejímají záruku za správnost zveřejněných materiálů. Předkládané informace a zapojení jsou zveřejněny bez ohledu na případné patenty třetích osob. Nároky na odškodnění na základě změn, chyb nebo vynechání jsou zásadně vyloučeny. Všechny registrované nebo jiné obchodní známky zde použité jsou majetkem jejich vlastníků. Uvedením nejsou zpochybněna z toho vyplývající vlastnická práva. Použití konstrukcí v rozporu se zákonem je přísně zakázáno. Vzhledem k tomu, že původ předkládaných materiálů nelze žádným způsobem dohledat, nelze je použít pro komerční účely! Tento nekomerční server nemá z uvedených zapojení či konstrukcí žádný zisk. Nezodpovídáme za pravost předkládaných materiálů třetími osobami a jejich původ. V případě, že zjistíte porušení autorského práva či jiné nesrovnalosti, kontaktujte administrátory na diskuzním fóru EB.


PHP-Nuke Copyright © 2005 by Francisco Burzi. This is free software, and you may redistribute it under the GPL. PHP-Nuke comes with absolutely no warranty, for details, see the license.
Čas potřebný ke zpracování stránky 0.14 sekund