forum.mcontrollers.com - hlavní stránka forum.mcontrollers.com - fórum

 

.: fórum - hlavní stránka :.
Technology Stronghold by Rudolf Vesely
How to build Microsoft System Center hosted cloud series
FAQFAQ HledatHledat Seznam uživatelůSeznam uživatelů Uživatelské skupinyUživatelské skupiny RegistraceRegistrace
ProfilProfil StatistikaStatistika Soukromé zprávySoukromé zprávy PřihlášeníPřihlášení

 
Programování uC Microchip v C
Jdi na stránku Předchozí  1, 2, 3 ... , 11, 12, 13  Další
 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
pechyx
Přispěvatel
Přispěvatel


Založen: 10.10.2010
Příspěvky: 23

PříspěvekZaslal: 24 srpen 2018, 10:41    Předmět: Citovat

Myslim, ze u XC by mohlo fungovat printf() ; ,tam je to myslim taky na UART1.
Jinak samozrejme pres pointer:

kód:

void sendString (consta char *str, unsigned int size)
{
     while(size --)
    {
        UxTXREG = (unsigned char) *str;
        str++;
        while (UxSTAbits.UTXEN)    // ceka na odelani
            continue;
    }
    return;
}


kod jsem nezkousel ... nebudou sedet asi nazvy registru ...
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Billy Bob Bean
Profesionál
Profesionál


Založen: 21.9.2009
Příspěvky: 309
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 24 srpen 2018, 13:27    Předmět: Citovat

Díky za odpověď. Printf z knihovny právěže použít nechci Smile a nedokázal jsem překladači vysvětlit jak zadefinovat ten vstup. Tohle vypadá dobře. JAk budu mít večer čas, tak to vyzkouším.
_________________
Stavím UPSky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 515

PříspěvekZaslal: 24 srpen 2018, 22:34    Předmět: Citovat

Jestli to stojí na GCC, tak ideálně přes fprintf.

#include <stdio.h>

FILE usart0 = FDEV_SETUP_STREAM(usart0_Out,usart0_In,_FDEV_SETUP_RW);

fprintf(&usart0,"TEXT\r\n");


Funkce usart_Out() , usart_In() si napíšeš sam jak uznáš za vhodný.

Tahle praxe funguje na AVR tak snad by se dala aplikovat na Michrochip.

_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 24 srpen 2018, 23:01    Předmět: Citovat

fprint ostane stáť na tom, kým sa celý reťazec neodvysiela a dovtedy mcu nerobí nič iné?

Neviem, nepoužívam. Mám spravené funkcie cez prerušenie.
No ak áno, potom je to rovnaká zhovadilosť ako delay a čím skôr od toho preč. Ak si funkcia fprint kompletne ošetrí prerušenie od UART-u (o čom v celku pochybujem), tak potom klobúk dole.

Prečo sa na to pýtam. Ak potrebujem odvysielať 60 znakov rchlosťou 9600Bd, 8N1, tak sa pod 62,5ms nemám ako dostať. Ale ak procesor má 62,5ms má stáť na mieste, tak to je v celku prúser. A zdanie, že funkcia fprint (sprint) niečo za mňa geniálne vyrieši hraničí so sľubmi nemenovaných politikov, ako robia pre ľudí Smile

Ďakujem skúsených za objasnenie.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 515

PříspěvekZaslal: 25 srpen 2018, 15:43    Předmět: Citovat

Martine, jak si to kdo napíše je jeho věc.
Já to mám přes IRQ/DMA podle potřeby a typu procesoru.

Na to aby se mi procesor neužitečně vrtěl v čekací smyčce kdekoliv v programu nemám náladu takže často píšu pod RTOS (mám napsaný vlastní).

fprint/sprint za mě řeší formátování a to i variabilní. Nebudu se srát s takovou volovinou, mám jiné věci na práci Wink

_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 515

PříspěvekZaslal: 25 srpen 2018, 15:56    Předmět: Citovat

Jo a Martine, to stou poznámkou o tom, že si funkce printf sama kompletně ošetří všechno kolem výstupního kanálu, v tomto případě USART, nemůžeš snad ani myslet vážně. To seš C-čkař? Jedná se přece o nadřazenou funkci, kterou výstupní kanál vůbec nezajímá. FATFS taky neví nic o SD kartě.
_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 25 srpen 2018, 17:04    Předmět: Citovat

Myslel som to vazne.

Aby som absurditou otazky primel uvazovat nad (ne)uzitocnostou takehoto pristupu na 8b jednocipoch bez OS Smile

Snad sa mi to podarilo a tazatel bude hladat jednocipakovo zmysluplnejsie riesenia. Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Billy Bob Bean
Profesionál
Profesionál


Založen: 21.9.2009
Příspěvky: 309
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 25 srpen 2018, 22:54    Předmět: Citovat

Martin: Mě to přijde maximálně užitečné, jinak bych se neptal. Potřebuji napsat vlastní funkci, která bude podle mě poměrně jednoduchým způsobem příjímat debug zprávy a posílat UARTem do světa.
Silně pochybuju o tom, že vestavěný Sprintf používá IRQ a DMA a nemám čas to zkoumat.

Hlavně jsem zásadně proti používání cizích knihoven a funkcí, prostě si do svojí aplikace nepustím cizí kód, kdy nevím kdy a co to v průběhu činnosti dělá, jestli to či ono.

8B nepoužívámm, to je v dnešní době akorát pro děcka, ptal jsem se na XC30 (Což je pro dsPIC a PIC24 Very Happy )

_________________
Stavím UPSky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 25 srpen 2018, 23:21    Předmět: Citovat

Sorry, prehliadol som typ mcu.

Ak na tom XC30 používaš nejaký operačný systém, potom to určite zmysel má.

Alebo ak vieš, že debugovacie správy budú tak malé, aby Ti zaskenutie sa mcu na tom, kým sa celá správa odvysiela nebude vadiť, tak je to tiež OK.

Len si treba byť vedomý, že čakanie mcu na dokončenie odvysielania môže v časovo kritických situáciách viesť k falošným výsledkom.

Pod časovo kritickou situáciou si netreba hneď predstavovať riadenie raketoplánu. Stačí programovať staničku na počítanie impulzov z elektromerov, kde impulz trvá 20ms a viac. Tak si spravím rutinu, ktorá testuje fyzický vstup napríklad každých 5ms.

No ak sa mcu rozhodne začať niečo vysielať, a správa bude trvať 45ms, potom sa môže kľudne stať, že budem mať hlavu v smútku, že mi nesedí počet prijatých impulzov s číselníkom elektromera. Ak tieto všetky súvislosti dopredu domyslím a viem s tým žiť, tak je všetko OK a presmerovanie fprint môže byť silnou pomôckou.


Držím palce


Martin

P.S. Inak som rád, že podľa Tvojej definície stále patrím medzi decká (duchom mladým) a ešte sa tým dá celkom slušne uživiť Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Billy Bob Bean
Profesionál
Profesionál


Založen: 21.9.2009
Příspěvky: 309
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 26 srpen 2018, 22:27    Předmět: Citovat

Martin: Hlavní programová smyčka má periodu 100 us. Řídím tím spínaný zdroje. Nemám právěže vůbec čas na kraviny. Neexistuje možnost, že by se mi zasekl cpu na 1 ms, kvůli nějaké kravině. Jak jsem psal, používám na vše IRQ a DMA.
200B odvysílám do stovky cpu us při 115200 Baud Smile

Proto si nemůžu dovolit se zabývat a zdržovat se vestavenýma funkcema v kompilátoru. Nejsou takto tvrdě optimaliovány na rychlost.
dsPIC má od kde jaké periferie 3 - 5 IRQ zdrojů (vyjma časovačů), ty můžou mít různou prioritu (celkem max 7). PIC24 to má stejně.

ZA ty 8b se omlouvám, bral jsem to ze svého úzkého pohledu. Very Happy

_________________
Stavím UPSky
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 27 srpen 2018, 10:39    Předmět: Citovat

Drzim palce Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Radius
Profesionál
Profesionál


Založen: 22.2.2013
Příspěvky: 515

PříspěvekZaslal: 27 srpen 2018, 16:25    Předmět: Citovat

Nezáleží na procesoru.
Dospěle napsanej musí být hlavně program.
Vhodná volba procesoru je věc druhá.

_________________
x51 , ARM , XILINX
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail Zobrazit autorovy WWW stránky
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 27 srpen 2018, 20:00    Předmět: Citovat

Presne tak Smile

ako napríklad tento progam je fakt dobre napísaný, C-čko ne C-čko Smile

https://touchit.sk/hlada-sa-programator-pre-40-rokov-zapnuty-pocitac-znacka-20-miliard-kilometrov-daleko/113266

8kB operačnej pamäte - z Plated wire memory, čo sa dá voľne preložiť ako pamäť z oplášťovaných drôtov - stačí prakticky na "šecko" Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Mahoney
Profesionál
Profesionál


Založen: 26.12.2013
Příspěvky: 149

PříspěvekZaslal: 28 srpen 2018, 16:34    Předmět: Citovat

Těžko říct jestli je dobře napsaný, neviděli jsme ho Very Happy

Fortran nebo Cobol by se ještě daly, ovšem pokud je to ve Forthu tak do toho nejdu Very Happy
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Martin
ATmega pouzivatel
ATmega pouzivatel


Založen: 5.1.2008
Příspěvky: 1495

PříspěvekZaslal: 28 srpen 2018, 20:24    Předmět: Citovat

Podľa mňa dobre napísaný program sa pozná podľa toho, že robí to čo má.
A evidentne tento to robí a už vyše 40 rokov. Tak asi dobre napísaný bude.

Samozrejme, že ho na ďiaľku preprogramovávali . Napríklad keď letel okolo (sa mi zdá) Saturnu, ho preprogramovali tak, že vedel lepšie komprimovať fotografie a vďaka tomu poslal z obdobia rádiového tieňa asi o 40% viac fotiek ako pôvodne mal.

Kurňa.

8kB pamäte?

A kus z nej slúži na diaľkové preprogramovavávanie?


A ešte to má niečo vysoko sofistikované a zmysluplné robiť?

Napríklad lepším algoritmom komprimovať prenášané fotky?

Sa skláňam pred tvorcami tohto neskutočného technického počinu Smile
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

Zobrazit příspěvky z předchozích:   
Zobrazit předchozí téma :: Zobrazit následující téma  
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip Časy uváděny v GMT + 2 hodiny
Jdi na stránku Předchozí  1, 2, 3 ... , 11, 12, 13  Další
 
Strana 12 z 13
Přejdi na:  
Můžete přidat nové téma do tohoto fóra.
Můž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.
Můžete k příspěvkům připojovat soubory
Můžete stahovat a prohlížet přiložené soubory
 



Num Lock Holder - app to hold Numlock
Copyright © 2018 Rudolf Veselý, mcontrollers.com.
Je zakázáno používat části tohoto webu bez souhlasu autora. || Powered by phpBB © 2001, 2002 phpBB Group - with RedSquare DoubleJ(Jan Jaap)