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í 

Pic18Fx52 Program - USART + PWM
Jdi na stránku 1, 2, 3  Další
 
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
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: po prosinec 05 2011, 17:42    Předmět: Pic18Fx52 Program - USART + PWM Citovat

Zdravím, potřeboval bych pomoct s programem pro PIC 18F252, jedná se o maturitní práci, za pomoc bych klidně byl i ochoten něco zaplatit Smile).

Přesněji jde pouze o Přijmutí 8mi bit čísla (Např 10000010) a potom o PWM.

Abych vysvětlil to přijmutí. Přijímat bych to měl z USARTU (Pouze Rx nic víc) kde přijmu cosi ve tvaru XYYYZZZZ (Kde Z je číslo pinu na PORTB v binárce a X (nejvyšší bit) je nastavená hodnota na výstupu pinu portu B, Y zatím nevyužité) Např: 10000010 - Nastaví na PORTB Pin 3 na log. 1; 00000001 - Nastaví pin č. 1 na log 0.


U PWM je sedná o řízení stejnosměrného motoru (pouze řízení), nejlépe nějak vyřešit abych mohl frekvenci regulovat také přes Rx (Zřejmě to budu posílat do PICu přes String a né INT.)

Nejlépe bych to psal v Cčku.

Díky za kontakty Smile)


Naposledy upravil eXilim dne po prosinec 05 2011, 17:56, celkově upraveno 1 krát.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



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

PříspěvekZaslal: po prosinec 05 2011, 17:45    Předmět: Citovat

Co je to byn? Shocked Shocked Shocked
A nejvyšší byt, nemyslíš spíš nejvyšší bit?

eXilim napsal(a):
Nejlépe bych to psal v Cčku.

Tak piš. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Atlan



Založen: May 10, 2004
Příspěvky: 4507
Bydliště: Košice

PříspěvekZaslal: po prosinec 05 2011, 17:55    Předmět: Citovat

no pomozeme aj zadarmo len ukaz co už maš a s čím maš problem.... ?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: po prosinec 05 2011, 18:01    Předmět: Citovat

Andrea: Děkuji, opravena už to řešim zas od rána tak se mi to zase motá Very Happy

Atlan: No upřímě nemám nic. Nějakej pátek už programuju v C++ (i C a win aplikace) a doted jsem dělal pouze se 16F84A v assembleru, potřebuju přejít na Cčko a nakopnout na nějakou cestu. Dnes mi přišli od známýho 18F252 (všichni mi nadávaj že sem měl koupit něco jinýho, nevím proč, ale předem říkám - dostal sem dva kousky).
Něco sem už o tom četl, ale potřebuju takový ty začátečnický rady Smile
Sem zvyklej psát v netbeans tak nevím jestli můžu pokračovat a jen integrovat compilátor?
Dále nevím jak to vlastěn funguje (čtení z portu, čtení z UARTU atpd.). Pokud to dobře chápu, načtu knihovnu s funkcema něco ve smyslu writeport(xxxx) atpd?

Díky předem
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: po prosinec 05 2011, 18:20    Předmět: Citovat

Asi založíme sekci "Pro zoufalé studenty" a budem to tam přesouvat. Brzy to ale zřejmě začne konkurovat Hvjezdné pjechotě...
_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: po prosinec 05 2011, 19:49    Předmět: Citovat

Proč pro zoufalé studenty? Jen sem se zeptal a poprosil o rady

edit: Připojuju soubor s programem který tvořím, vím plno tam toho chybí, snažím se to psát podle http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_C18_Libraries_51297f.pdf ale plno věcí tam nechápu bohužel...

edit2: opravil sem nějaké chyby co sem zapoměl



sw.txt
 Komentář:

Stáhnout
 Soubor:  sw.txt
 Velikost:  1013 Bajtů
 Staženo:  94 krát

Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
ZdenekHQ
Administrátor


Založen: Jul 21, 2006
Příspěvky: 25741
Bydliště: skoro Brno

PříspěvekZaslal: út prosinec 06 2011, 10:59    Předmět: Citovat

To "zoufalé studenty" není (zatím) myšleno nijak špatně - prostě jsou období, kdy máte rojení, většinou těsně před tím, než přijde včelař vymetat úl... Very Happy
_________________
Pro moje oslovení klidně použijte jméno Zdeněk
Správně navržené zapojení je jako recept na dobré jídlo.
Můžete vynechat půlku ingrediencí, nebo přidat jiné,
ale jste si jistí, že vám to bude chutnat[?
]
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: út prosinec 06 2011, 11:07    Předmět: Citovat

Jo takhle, no to je pravda no Smile Holt před maturou
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
piitr



Založen: Oct 19, 2007
Příspěvky: 1003

PříspěvekZaslal: út prosinec 06 2011, 13:15    Předmět: Citovat

Píšeš, že C++ znáš, ale jen na PC.
Tak mi přijde divný, že sedmý bit testuješ takhle:
kód:
unsigned char read = usartRead();
if(read[6]==0) ...
To snad nemůže jít ani přeložit, ne? Nemělo by tam být spíš něco jako:
kód:
if ( read & 1 << 6 ) ...je_to_jednicka... else ...je_to_nula...
?
A proč v té funkci usartRead čteš osm bajtů a pak se snažíš vrátit jen jeden (opět blbě)?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
Atlan



Založen: May 10, 2004
Příspěvky: 4507
Bydliště: Košice

PříspěvekZaslal: út prosinec 06 2011, 14:03    Předmět: Citovat

predpokladam ze si to odniekial skopiroval.... inak najprv nastav piny procesora, jegho registre a tak niečo prijimaj vysielaj...to bude dlha cesta....
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: út prosinec 06 2011, 15:09    Předmět: Citovat

Nene nekopíroval. Ok změna:

kód:
#include "18c252.h"
#include "uart.h"

unsigned long proc_type 0x8252;



void main() {
   unsigned char read;
   read = getRx();

   baudUSART (BAUD_IDLE_CLK_HIGH &
      BAUD_8_BIT_RATE &
      BAUD_WAKEUP_ON &
      BAUD_AUTO_ON);

   if (read & 0x40) setPwm(read);
   else setPin(read);

   
}
unsigned char getRx() {
   unsigned char result;
   result = ReadUSART();
   return result;
}

void setPin(unsigned char get) {
   unsigned char pin;
   unsigned char hodnota;
   
   hodnota = get & 0x80;
   pin = get & 0xF;

   //nastavení pinu
}




Zamaskuju to, co přijde a získám 7. bit, už je to spráně?

Jinak díky za rady
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



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

PříspěvekZaslal: út prosinec 06 2011, 15:51    Předmět: Citovat

Až na to, že je to 6. bit, protože bity se číslujou od 0.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: út prosinec 06 2011, 15:53    Předmět: Citovat

Dobře, tak 6. bit, ted se jen ptám jak "vybrat" ten pin a nastavit do něj hodnotu? (setPin())
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
Andrea



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

PříspěvekZaslal: út prosinec 06 2011, 15:59    Předmět: Citovat

Číslo pinu máš 0-15, ale port má jen 8 pinů, co těch zbylých 8?
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
eXilim



Založen: May 19, 2010
Příspěvky: 44

PříspěvekZaslal: út prosinec 06 2011, 16:19    Předmět: Citovat

Do budoucna na využití RA, ted to ještě přepíšu na pin = get & 0x7; a budu využívat jen 3 nejnižší bity a pouze Port B akorát nevím, jak ho zvolit a nastavit mu hodnotu
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
Jdi na stránku 1, 2, 3  Další
Strana 1 z 3

 
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.20 sekund