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í 

UART Bascom dotaz

 
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
apam



Založen: Mar 17, 2007
Příspěvky: 111

PříspěvekZaslal: pá červen 07 2013, 18:21    Předmět: UART Bascom dotaz Citovat

Dobrý den, potřeboval bych poradit, kdy při seriové komunikaci podle této konfigurace program odskočí na Serial0CharMatch:
kód:

Config Serialin = Buffered , Size = 40 , Bytematch = 35
Config Input = Crlf , Echo = Crlf
Echo Off

je to hned při přijetí volacího znaku # nebo az po prijeti # na zacatku stringu a jeho ukonceni CRLF? Co se stane když se přeplni buffer.
V programu je oblast, ve které musím vypínat přerušení na dobu 150 až 380ms. Celková smyčka je pak kolem 300-500ms. Co se stane s obsahem který dorazí zrovna v tuto dobu?
Data mi chodí, ale někdy jsou neúplná.
Děkuji za odpověď
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 červen 08 2013, 5:42    Předmět: Citovat

1. Program skočí na Serial0charmatch hned jak znak dorazí na uart.
2. Buffered serialin používá přerušení RX. Po dobu jeho vypnutí jsou přijaté znaky ztracené.

PS
citace:
V programu je oblast, ve které musím vypínat přerušení na dobu 150 až 380ms. Celková smyčka je pak kolem 300-500ms.
Chtělo by to asi napsat program jinak.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
apam



Založen: Mar 17, 2007
Příspěvky: 111

PříspěvekZaslal: ne červen 09 2013, 17:00    Předmět: Citovat

Obávám se, že to asi nebude možne, je to oblast kde zrovna komunikuje pres 1wire (11 čidel DS18B20 ve 12b rozliseni) a I2C (RTC) a ty odskoky na serial0charmatch mu nedelají dobre Rolling Eyes Myslel jsem, že bych vyprázdnil buffer každou smyčkou. Ta je bohužel dost dlouhá a pres uart by mohlo najednou prijít víc bytů než je schopny pojmout do vyprazdneni. Stejne by to ale asi nepomohlo. Je nejaká možnost jak by to šlo pořešit?
Jo a pres uart komunikuje s minimálně jedním externím zařízením přes obousměrný RF modul od Hope... aby jste byli v obraze...

K té první části odpovědi.. to znamená, že když bude pod serial0charmatch: hned prikaz input nejaky_string tak se do toho stringu nakopirujou jen data která mezi tím stihla dorazit nebo čeká až na crlf na konci stringu tak jak je to v config input? je v pohodě hned za prikaz Input nejaky_ string napsat clear serialin? co presne udelá clear serialin?

děkuji za rady.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
AB1



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

PříspěvekZaslal: ne červen 09 2013, 19:12    Předmět: Citovat

citace:
to znamená, že když bude pod serial0charmatch: hned prikaz input nejaky_string tak se do toho stringu nakopirujou jen data která mezi tím stihla dorazit nebo čeká až na crlf na konci stringu tak jak je to v config input?
Příkaz Input string ukládá bajty do "string" dokud nepřijde crlf. Mazat serial buffer je zbytečné, je to kruhový buffer, který nemůže přetéct.

Otázka se teď už netýká konkrétně Bascomu, ale spíš problému jak přijímat z uart během komunikace 1wire, která zřejmě nesmí být přerušovaná.

Můžeme třeba zavést do uart nějaký "handshaking".
Např vysilač když má zprávu, vyšle '#'.
Pak čeká na povolení vysílat, třeba '$'.
Povolení mu pošleme až bude hlavní program volný.
(Může to být i mezi jednotlivými příkazy 1wire. To vše samozřejmě bez přerušení.)

Pro nějakou konkrétní radu známe málo podrobností.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
apam



Založen: Mar 17, 2007
Příspěvky: 111

PříspěvekZaslal: ne červen 09 2013, 19:43    Předmět: Citovat

jj tohle mne taky napadlo, zatim jsem nerealizoval. Pravdepodobne by to mohlo fungovat i s docela slušnou odezvou. Vyzkousim to nacpat mezi prikazy pro ty cidla. Díky za dobrou radu.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
apam



Založen: Mar 17, 2007
Příspěvky: 111

PříspěvekZaslal: st červen 12 2013, 19:55    Předmět: Citovat

handshaking funguje. data stahuje jednou za smyčku. díky za radu
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.18 sekund