Mereni U,I, zobrazeni dat na LCD atd. realizuji pomoci 16F877A. Jeste potrebuji mit k tomu celkem 5xPWM a tak premyslim ze bych si sam udelal script pro 5xPWM napr v 16F84 (lezi mi doma v supliku). Na 16F877A mam volne 4 vyvody a nevim jak bych ridil tu 16F84. Moje predstava je, ze bych si v te 16F877 urcil jake parametry budou pro kazde PWM a nejak to soupnul do te 16F84. At premyslim jak premyslim, nic kloudneho me nenapada. Poradi mi nekdo ? No jeste mam doma jednu 16F826, tam by to snad slo pres USART (poslat 5bytu kde kazdy byt obsahuje info o nastaveni PWM), jenze neni mi jasne jak to ma fungovat. neco jsem si precetl z netu, ale jsem z toho domotany.
USART můžeš pro 16F84 vytvořit programově. Řešil bych to tak, že budu posílat do 16F84 2 byty. V prvním bude adresa PWM 1 – 5 a v druhém šířka pulsu. Pokud chceš použít PWM více jak 8bitové, pak první byt bude adresa, druhý byt bude HI-byt PWM a třetí byt bude LO-byt PWM.
To je mi jasne po teoreticke strance, jen nevim jak poslat ten byt do 16F84 aby to ta 16F84 umela precist, spojeni realizovano po dvou dratech.
Nutne to chces po 2 dratoch.
TAk vytvoris vstupy clk bude vstup data bude vstup. budu napr drzane na +5 v Pullup. Zmenou urovne na clk sa zapise stav z data do registra . zarove nprvou zmenou na clk si spust nejaky timer ak pride patricny pocet bytov zastav timer, ak nepride pretecenie nech sposobi vymazanie registara a navrat na zaciatok.
No ja mam k dispozici 4 volne vyvody na 16F877.
Stačí jen společná zem a 1 vodič pro usart. Co ti na tom posílání není jasné…
Když nastavíš u obou MCU stejný baudrate, tak to musí přečíst.
nieco je aj tu pic rs 232 PC ale malo by sa dat aplikovat na pic-pic pandatron.sk/?530&uart_na_pic_-_ … covy_rs232
Taky mi není jasné v čem je problém Z předchozí diskuze to chápu tak, že jeden z procesorů nemá hw uart, ale to přeci není problém vyřešit sw. a Dál? Tak třeba jak psal Petr, jen bych vynechal adresy (pokud není třeba schopnost měnit nastavení po každém jednotlivém průchodu konkrétního čítače - velice nepravděpodobné). Stačí vědět, že první sada (buď byte nebo 2B dle hloubky PWM) je PWM1, druhá PWM2 atd.
Pokud je problém s fyzickým vyzvednutím přijatých dat, tak tady asi neporadim, ale obvykle má mcu s hw uartem bit, který signalizuje přijatá data a dále registr, ve krteém se nacházejí. V případě sw uartu to záleží na implementaci. To se bez konkrétního kódu nedá říct.
Jako vstup pro usart u 16F84 bych použil RB0, dá se nastavit pro vyvolání přerušení a jestli bude reagovat na sestupnou nebo náběžnou hranu. V našem případě nastavíme sestupnou „Start bit“
Mozem tu dat kody soft i2c zbernice komunikacia pic18f452 a 16f628 jednosmerna len neviem ci by to k niecomu bolo.
No jeste me napadlo (snad to neni blbost), pomoci 74HC595 muzu prepinat az 8 vystupu do log nebo log1. Existuje nejakey podobny IO, ale ktery by misto spinani vystupnich pinu generoval na jednom, pinu PWM podle toho jake data do nej poslu ? Hledal jsem pres google, bohuzel nenasel jsem nic.
Ať tam zapojíš cokoli, stejně do toho budeš muset posílat data, takže si nevybereš.
To je mi jasne, prave u toho 74HC595 je to idealne jednoduche, v podstate tam soupnu 1byt a mam vystarano. No a kdyby to bylo i pro PWM, asi bych stestim umrel No jo, sem uz hold starsi generace a to uceni mi nejak porad neleze do hlavy.
edit: nasel jsem M66242FP , ale ten se u nas neda koupit, takze dale hledat neco podobneho koupitelneho v CR
To, že jsme starší generace neznamená že to budu řešit relátkama…
s tim se neda nez jen souhlasit.
Biker: A proč si nenaprogramuješ SW PWM a neposíláš to přes 74HC595 ven?
Builly Bob bean: Jak to myslis “preposilas to pres 74HC595 ven” ?
Builly Bob bean myslel asi přímo tou 595tkou generovat tu PWM. docela by to ale vytížilo procák na kolko procent ti to jede ?
caven:
- jak zjistim na kolik % mam vytizeny procesor ?
- jak bych mohl generovat pomoci 595tky PWM ? Vzdyt to ma 8 vystupu na kterych muzu mit log0 nebo log1.
edit: neco me napadlo, to ze by ta 595tka fungovala tak ze tech 8 pinu je jedna perioda a podle nastaveneho PWM bych spinal piny 0-7 ?
no na kolik procent máš vytížený procesor zjistíš tak zda jsou někde rutiny napsané tak, že se čeká na příznak nebo jsou tam čekací smyčky… atd prostě pokud ten procesor jede pořád “ve smyčce” a něco dělá tak jeden a plno, ale pokud anpíšu program tak, že hlavní program nebude dělat vůbec nic a vše se bude dělat přes přerušení časovačů tak ti procesor nejede na 100% že no ono by to šlo udělat i tak, že by jsi tou 595 generoval přímo tu pwm. čili by jsi měl 8 PWM výstupů, ale já ovšem ted nevím jak rychlý ten šváb je a jakou periodu potřebuješ pro to PWM… čili měl by jsi časovač a v přerušení toho časovače by jsi obsluhoval těch 8 výstupů a po těch 3 drátech by jsi to ládoval do té 595tky … Asi tak co mě napadlo