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 ... 9, 10, 11
 
Přidat nové téma   Zaslat odpověď    Obsah fóra mcontrollers.com -> Microchip
 
MiloPS3
Profesionál
Profesionál


Založen: 24.12.2008
Příspěvky: 882
Bydliště: LAZNE KYNZVART

PříspěvekZaslal: 12 duben 2013, 19:09    Předmět: Citovat

ne to sem natvrdlej ja Laughing , takze beru spet , v tomhle pripade to neni ono..

parkrat se my stalo ze si to prekladac prepocital po svym asi nejak takto
kód:
U_BAT=U_BAT*31439;
UBAT=U_BAT;
a pak to prave nevychazelo
_________________
PIC,ASM / C , Mplab + CCS C Compiler
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Odeslat e-mail
 

 
Panda38
Profesionál
Profesionál


Založen: 18.9.2012
Příspěvky: 398
Bydliště: Praha, Most

PříspěvekZaslal: 12 duben 2013, 19:23    Předmět: Citovat

Jo, to může být že použije pro výsledek stejný registr.

Překladač to běžně bere tak, že zkontroluje velikosti operandů ve výrazu a podle toho použije typ výpočtu, tj. 16b číslo * 16b číslo násobí 16bitově, výsledek je 16b a ten pak uloží do registru výsledku (např. 32b). Měl by mít alespoň jeden operand rozměr 32b aby použil 32bitové násobení.

Při sčítání dvou 16b může být výsledek velký 17 bitů. Překladač musí zajistit i správné nastavení horního slova výsledku (aby zajistil znaménko), takže použije informace ze stavového registru a tam je nejen signum, ale i příznak carry (resp. overflow), který mu řekne že tam má přidat ještě jeden bít. Sčítání 16 bitů může tedy udělat 32b výsledek bez ztráty dat.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu Zobrazit autorovy WWW stránky
 

 
Billy Bob Bean
Profesionál
Profesionál


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

PříspěvekZaslal: 06 červenec 2016, 22:46    Předmět: Citovat

Ahoj, jak se dá v XC16 zjistit skutečná adresa buňky pole v RAM kam ji umístil kompilátor? Nějak k tomu nemůžu dojít.

Chci rozchodit krmení grafického LCD přes SPI PIC24 a data do SPI tam sypat za pomocí DMA z "video RAM pole". Potřebuju nastavit počáteční a koncové adresy pro zdroj dat. Na LCD bude převážně grafika s výšším FPS.

Děkuji.

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

 
Balů
Profesionál
Profesionál


Založen: 29.10.2012
Příspěvky: 708

PříspěvekZaslal: 07 červenec 2016, 6:57    Předmět: Citovat

A co zkusit tohle :

kód:
char Pole[PocetPrvku];
char *AdresaBukny, *AdresaPole;

AdresaBunky = &Pole[KteryPrvekChces];
AdresaPole = Pole;

případně
kód:
AdresaPole = &Pole[0];


To by snad mělo chodit v jakémkoliv Cčku.
Návrat nahoru
Zobrazit informace o autorovi Odeslat soukromou zprávu
 

 
Mahoney
Profesionál
Profesionál


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

PříspěvekZaslal: 07 červenec 2016, 16:12    Předmět: Citovat

Bývalo dobrým zvykem, že kompilátory generovaly LST soubor (listing - nemusí mít vždy příponu .lst), kde byly všechny adresy a symboly shrnuty - XC16 už to neumí?

Edit: Takže si odpovím sám - XC16 User's Guide praví:
citace:

3.6.10
How Do I Know What Code the Compiler Is Producing?
The assembly list file can be set up (using assembler listing file options) to contain a
variety of information about the code.That information could include assembly output
for almost the entire program, library routines linked in to your program, section
information, symbol listings, and more.
The list file can be produced as follows:
• On the command line, create a basic list file using the option:
kód:
-Wa, -a=projectname.lst

• For MPLAB X IDE, right click on your project and select “Properties”. In the Proj-
ect Properties window, click on “xc16-as” under “Categories”. From “Option
categories”, select “Listing file options” and ensure “List to file” is checked.
By default, the assembly list file will have a .lst extension.
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: 257
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 08 červenec 2016, 18:06    Předmět: Citovat

Díky moc borci,
Balů: Vyzkouším.

Mahoney: O listingách zhruba vím, já jsem právě potřeboval něco zcela automatickýho, nevím na kolik je kompilátor ochotnej při vícenásobným překladu přehazovat proměnný v RAM na jiný místo aby to bylo zábavný Smile

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

 
Mahoney
Profesionál
Profesionál


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

PříspěvekZaslal: 08 červenec 2016, 18:30    Předmět: Citovat

V tom případě jsi spíš špatně zformuloval otázku, protože jsi psal, že k tomu nemůžeš dojít, ne že chceš, aby k tomu dokázal dojít program v MCU (teda jestli to dobře chápu). Ale stejně mi není jasný k čemu to můžeš potřebovat, kompilátor se o svoje proměnný dokáže postarat dobře sám a program v MCU se vůbec nemusí zajímat o to, kde co leží.
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: 257
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 09 červenec 2016, 10:31    Předmět: Citovat

Balů: Díky funguje to. Popravdě jsem pintery do teď nepotřeboval, takže ani nevím, že to jde použít takhle jednoduše.

Mahoney: No když to čtu znova, tak to mám napsáno lehce divně Smile

Kompilátor se o proměnný stará v pohodě. Já mám v RAM pole 1024B pole, který potřebuju přes SPI přenýst do LCD co 100 ms. Standartní ruční prací, to zabere strašný množství procesorovýho času.
PIC24 má DMA řadič, kterýmu akorát sdělím adresu odkud má začít sypat data (počáteční a koncová adresa pole) a kam (SPI buffer). Celý tohle to zabere CPU jen pár stovek ns, všechno tam přesune DMA řadič úplně sám.

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

 
Mahoney
Profesionál
Profesionál


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

PříspěvekZaslal: 09 červenec 2016, 19:40    Předmět: Citovat

No ono když to čtu znova zas já, tak zjišťuju, že jsem poprvé tu druhou část tvého příspěvku (s tím LCD, SPI atd.) úplně přehlídnul. Takhle to smysl samozřejmě dává Wink takže psát asi umíš, jen neumím číst Confused (ach jo).

Co máš přesně za PICku a za displej (jen tak pro zajímavost)?
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: 257
Bydliště: OLOMOUC - BRNO

PříspěvekZaslal: 10 červenec 2016, 2:52    Předmět: Citovat

No ty neumíš číst a já neumím psát Smile

LCD mám http://www.tme.eu/cz/details/eadogl128w-6/graficke-lcd-displeje/electronic-assembly/ea-dogl128w-6/
Mám na tom nalepenej i ten odporovej dotykovej panel, tak jsem zvědavej jak se s tím poperu.

PICy používám ve velkým PIC24FJ64GA306 na tom jsem v práci postavil spec. PLC. Na pokusy používám ještě PIC24FJ256GB206.
V měničích (DC-DC, DC-AC) používám ještě dsPIC33FJ16GS504, ten je výkonově totálně nejmasakrálnější, nicméně ho bude nahrazovat dsPIC33EP64GS504 a ten je ještě víc nabušenej.

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

 
NoNameA
Anonymní





PříspěvekZaslal: 10 červenec 2016, 20:52    Předmět: Citovat

To Billy Bob Bean, mám malý dotaz trochu mimo dané vlákno. Je na ds picech možnost debug v reál čase, bez ovlivňování chodu programu? Ptám se proto, že dlouho jsem používal pic18, kde se o nějakém použitelném debugování nedalo mluvit. Přešel jsem na Motorola Freescale, debug v reálném čase jede ok, ale stejně šilhám zpět po picech ......
A malý dotaz ještě, používáš v měníčích měření limit vf výkonového proudu z výstupu?
Návrat nahoru
 

 
Billy Bob Bean
Profesionál
Profesionál


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

PříspěvekZaslal: 10 červenec 2016, 23:22    Předmět: Citovat

Noname: Debug vůbec nevím, já tohle nepoužívám. Od doby co jsem objevil Saleae Logic a blikání ledkou + UART nic jiného nepoužívám, takže nevím.
dsPIC má JTAG, a na standartním debug má daleko větší HW množství breakpointů a možnosti SW breakpointů.

Limit VF proudu na výstupu? Jak to myslíš? Nebo co myslíš konkrétně?

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

 
NoNameA
Anonymní





PříspěvekZaslal: 11 červenec 2016, 14:37    Předmět: Citovat

Zdravím, myslím to tak, že se měří výstupní proud z IGBT tranzistoru a v případě zkratu na výstupu dojde k vyhodnocení limity proudu a vypnutí měniče než bude po něm. Ochrana je provedena hardverově mimo cpu a měla by zvládnout tvrdý zkrat na výstupu v řádu max jednotek mikro sekund. Dělám výkonové měniče a tuto část zatím ještě nemím dostatečně ošetřenou.
Návrat nahoru
 

 
Billy Bob Bean
Profesionál
Profesionál


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

PříspěvekZaslal: 11 červenec 2016, 16:53    Předmět: Citovat

Já si myslím, že funkční nadproudová ochrana je na celým tom měniču to nejsložitější. Ochrany řeším přes CPU, taky to není úplně dokonalý.
Hlavně to chce mít na výstupu měniče dostatečnou indukčnost, aby se trochu zmenšíla strmost dI/dt a byl volný čas na posnímání nadproudu.

_________________
Stavím UPSky
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 ... 9, 10, 11
 
Strana 11 z 11
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 © 2017 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)