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í 

Tiny85 - konfigurace PWM v Bascomu

 
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
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 8:39    Předmět: Tiny85 - konfigurace PWM v Bascomu Citovat

v bascomu jsem mel cvicny programek na pwm pro procesor, co jsem mel zrovna v supliku, tedy mega32...konfigurace vypadala takhle:
rem nastaveni PWM radice na 2400Hz, vystup bude na PIND.5, tedy OC1A
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 8

v kodu jsem pak pouzival prirazeni hodnoty:
Pwm1a = hodnota

ted jsem chtel program predelat pro tiny85, ale kdyz pouziju tuhle deklaraci, tak to nefunguje. konkretne nefunguje prirazeni pro pwm1a. zjisitl jsem, ze pwm0a lze pouzit, takze asi je jen jeden pwm port u tohoto cipu, ale zaboha nevim, jak upravit radek config timer1....kde mi to porad hlasi chybu a na jakem pinu vystup bude. koukal jsem do manualu, ale njsem z toho nejak mooudrej. urcite to bude tim, ze jeden procesor ma na orzdil od druheo nejake timery a jine nema nebo tak neco, ale fakt nevim.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st duben 01 2009, 10:26    Předmět: Citovat

Co tak si o těch procesorech něco přečíst, třeba datašíty? Nebo jak chceš programovat jednočip, když ani netušíš, jaké má nebo nemá čítače?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 11:51    Předmět: Citovat

Andrea napsal(a):
Co tak si o těch procesorech něco přečíst, třeba datašíty? Nebo jak chceš programovat jednočip, když ani netušíš, jaké má nebo nemá čítače?


myslim, ze na tohle jsem upozornil, ze tomu nerozumim
citace:
koukal jsem do manualu, ale njsem z toho nejak mooudrej


takze prosim o konstruktivni radu. kdyz s tim nekdo zacina, tak mu navod nepomuze. privital bych odpoved typu ten tvuj cip nema tenhle casovac, proto musis pouzit tuhle deklaraci atd... ja s tema cislama zkousel laborovat, ale k nicemu sem nedospel. bohuzel se to ucim sam, takze tvoje rada je mi vis tak k cemu...a zbytecne zaplnuje forum. mozna ze ho zbytecne zaplnuju i ja, ale alespon s konkretnim problemem, ktery muze poslouzit dost dobre stejnym "defum" jak jsem ja.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
endthe



Založen: Mar 07, 2009
Příspěvky: 56
Bydliště: Brno

PříspěvekZaslal: st duben 01 2009, 11:59    Předmět: Citovat

tvoje mega32 ma Timer_counter 1 tudiz muzes pouzit PWM na portech D

staci si projit nastaveni bitu pro rizeni PWM

dale musis urcit ICR1 (zalezi na volbe krystalu, preddelicky a zvolem typu PWM)


datasheet na megu32 http://www.atmel.com/dyn/resources/prod_documents/doc2503.pdf

PWM tam najdes na str.98

jinak pro OC1A

to napr bude
kód:

ICR3=20000; // f=50Hz f=fxtal/N*TOP  N=8 ICR1=TOP

TCCR1A|=(0<<COM1A0)|(1<<COM1A1)|(0<<COM1B0)|(0<<COM1B1)|(1<<WGM11)|(0<<WGM10); // fazove korigovana PWM (0<<WGM11)|(1<<WGM10)


ale zalezi na tobe jak to potrebujes. vysvetlovat vyznami jednotlivych bitu ti nebudu to najdes v datasheetu a pokud aspon trosku davas anglictinu tak to zvladnes precist.

jinak v bascomu nedelam delam v C takze si to musis prekopak a doporucuju prejit na AVR Studio popripade Code Vision.

potom muzes podobne problemi hledat napr zde:
http://winavr.scienceprog.com/avr-gcc-tutorial/control-avr-8-bit-timer-counter2-using-winavr.html
http://winavr.scienceprog.com/avr-gcc-tutorial/program-16-bit-avr-timer-with-winavr.html
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 12:13    Předmět: Citovat

to endthe> diky za prispevek, ktery neco napovida narozdil od predchoziho. co se tyka pouziti, tak z manualu jsem vycetl, ze to ma nejaky interni krystal 8MHz, tak v ramci eliminace externich soucastek bych rad vyuzil jej. jedine, co potrebuji je pouziti funkce pulsin, ktera bude merit delku impulsu na jednom vstupnim pinu. dale bude vystup na pinu na kterem je mozno provozovat hw pwm. prave ze jsem u te megy nejak moc nepochopil, jak se urcuji ty vystupi a ktera deklarace co urcuje. jen ze timer1 je mozny provozovat s pwm. slo by to nejak vice objasnit pro blbeho? dekuji.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 12:16    Předmět: Citovat

jinak pokud bych chtel prejit na ten jazyk c, je nejaky volny prekladac? ja vim, ze jsem si kdysi stahoval verzi avr studia, ktere ma integorvano nejake to free c, ale vubec mi to nejak neslo rozjet. je nekde cesky popsane, jak s timhle zacit?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
endthe



Založen: Mar 07, 2009
Příspěvky: 56
Bydliště: Brno

PříspěvekZaslal: st duben 01 2009, 12:22    Předmět: Citovat

primo ze stranek http://www.atmel.com/forms/software_download.asp?fn=dl_AvrStudio416Setup.exe (po kratkem vyplneni formulare) stahnes nejnovejsi AVR studio

potom nainstaluj


pak stahni http://sourceforge.net/project/showfiles.php?group_id=68108&package_id=66543&release_id=668059


nainstaluj


do AVR studia se ti prida gcc (programovani v C)

pak pust AVR zaloz projekt gcc a programujes Wink
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 12:59    Předmět: Citovat

ok, tak uz to stahuju, ale stejne uvidime, jak se v tom budu orientovat. kazdopadne porad plati ten muj prvni problem...jak tedy implementovat ten funkcni program co mam pro mega32 na tiny85. jde o to, ze bych chtel pouzit interni krystal (to se asi nastavuje konfiguracnima bitama a tusim podle navodu je interni 8mhz krystal standartne). pak mit jeden vstup, kterym budu merit pomoci pulsin sirku pulsu. dalsi stezejni vec je nastavit jeden pin od tiny85 jako vystup a aby se na nem objevovala pwm. potrebuju trochu postrcit, ale jak urcim na jaky pin pujde vystup, to je asi dano temi vystupy? navod rika, ze ma tiny85 dva timery:
- 8-bit Timer/Counter with Prescaler and Two PWM Channels
- 8-bit High Speed Timer/Counter with Separate Prescaler
a v tech registrech se nevyznam, na kterem pinu tedy co najdu? jde to pospat nejak pro troubu?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



Založen: Sep 07, 2007
Příspěvky: 9340

PříspěvekZaslal: st duben 01 2009, 13:11    Předmět: Citovat

Anglickým obrázkům taky nerozumíš? Máš tam napsáno, co je na které nožičce.
A ten oscilátor uvnitř, není krystal, je to RC oscilátor, takže od něj nečekej přesnou ani stabilní frekvenci.



tiny25.gif
 Komentář:

Stáhnout
 Soubor:  tiny25.gif
 Velikost:  16.33 kB
 Staženo:  97 krát

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



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 13:48    Předmět: Citovat

no nejde o to jestli rozumim nebo nerozumim, ce le to nemuzu dat dohromady. kdyz jsem delal ten prvni programek s mega32, tak jsem nekde v nejakem prikladu vyhrabal deklaraci:

Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 8

tu jsem pochopil, ze pro regulaci pwm bude pouzit timer1 z rozlisenim 8 bitu, pocitanim dolu, porovnavat to bude s A a predelic urcil nejaou frekvenci. dal jsem si myslel, ze ten porovnavaci registr A je nejaka vazba na pin OC1A (1=timer 1, A = compare A) a podle schema obvodu to odpovidalo pind.5. takze porovnavat se bude s registrem Compare1a pro ktery ma bascom ekvivalent zapisu Pwm1a, ktery tedy urcuje hodnotu k porovani.
na pin d.5 jsem pripojill ledku a kdyz jsem nastavoval ruznou hodnotu, tak se menila intenzita jejiho svitu.

takze jsem to chtel zkusit predelat pro mensi cip, tedy tiny85. koukal jsem, ze ma taky timer1, takze jsem nastavil:
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Prescale = 8

a myslel jsem, ze nastavenim pwm1a, tedy oc1a bude vystup na pinu b.1 podle vyse uvedenoho obvrazku. ovsem u deklarace mi prekladac hlasi invalid parametr or value pro deklaraci a pro prirazeni hodnoty chybu prirazeni. tak jsem zkusil prepsat pwm1a na pwm1b a ta druha chyba zmizela, ale porad u te deklarace je ta stejna chyba. rikal jsem si, ze zmenim podle B compare a na B a budu to mit na pinu b.4 ale porad to hlasi chybu. vubec nevim, jak si to mam polopaticky vysvetlit...teda jestli je nejake jednoduche vysvetlneni
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
endthe



Založen: Mar 07, 2009
Příspěvky: 56
Bydliště: Brno

PříspěvekZaslal: st duben 01 2009, 14:41    Předmět: Citovat

mrkni tu tady se resilo PWM
http://www.ebastlirna.cz/modules.php?name=Forums&file=viewtopic&t=27231&postdays=0&postorder=asc&start=0
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: st duben 01 2009, 15:07    Předmět: Citovat

no v tom cecku na to cumim jak puk na vrata...asi mam bordel v tech registrech. najde se dobra vila, co mi to objasni?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
josido



Založen: Mar 26, 2009
Příspěvky: 73

PříspěvekZaslal: čt duben 02 2009, 8:28    Předmět: Citovat

tak nevim, jestli jsem to dobre pochopil, kazdopadne jsem si zrovna vybral blbej jednocip...tedy tiny85, pac ma jen 8-bitove timery. takze ta syntaxe nebyla uplne presna, musel jsem upravit:
Config Timer0 = Pwm , Compare A Pwm = Clear Down , Prescale = 8
sptane tam totiz bylo navic Pwm= 8 (myslim, ze se to zadava pouze u 16-ti bitoveho timeru, nebot si tim parametrem vybirame rozliseni 8,9 nebo 10bitu, coz u 8-bitoveho timeru dost dobre nejde)

dale pak prirazeni vystupu odpovida pouzitemu kompatatoru, tedy compare A, budu nastavovat hodnoty pwm0a= hodnota.

kompilator to schroustal, tak snad to je dobre a ma to svou logiku. vystup by mel byt na pinu B.0, ktery odpovida OC0A.

nebo se v necem pletu?
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.28 sekund