Starý somár začína...

Všetko čo sa týka mikropočítačov + Sekcia Arduino

Moderátori: psichac, Moderátori

Používateľov profilový obrázok
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: Starý somár začína...

Príspevok od používateľa balu » 06 Mar 2024, 22:15

I v době, kdy jsem dával dohromady tu osvitku byly MCU s větší pamětí. Nicméně na plošňák se vešelo pod LCD displej akorát 4 ks 74595 a 8-nožičkový procesor - tehdy v THT provedení. No - a po ruce byl ATtiny13A s 1kB flash. Zobrazení dipleje a odečítání času bylo v pohodě, ale když jsem začal doplňovat nastavení rotačním enkodérem, přepínání mezi min:sek a hod:min na displeji (časovač osvitky má rozsah 1s až 2h) a uložení posledního zapínacího času do EEPROM, začalo se místo zmenšovat. Ale dost o tom.

ASM kód vygenerovaný Cčkem bude vždy větší. Už proto, že Cčko ukládá proměnné do SRAM a odtud je také čte, když s nimi pracuje. V ASM jsem nechával většinu proměnných v registrech (AVRko jich má k dispozici 32). Jen párové registry jsem používal pro čtení z SRAM a pár registrů bylo vždy vyhrazeno pro ostatní operace (RAM, dočasné proměnné, předávání dat z/do periferií atd). Už z tohoto důvodu musí být překlad z Cčka větší, než ASM. Další je úschova registrů při volání přerušení a předávání proměnných v parametrech při volání procedur. Toho balastu, který tam Cčko potřebuje je prostě poměrně dost. V kratičkém programu bez volání procedur a obsluhy přerušení to bude plus mínus nastejno.

Jinak ASM má samozřejmě svoje kouzlo (a rychlost psaní to rozhodně není) a pokud si 03601 chce naprogramovat procesor v ASM, tak proč ne.

A pro @budvar10 : 32-bitovou matematiku jsem si v ASM programoval. Pravda - jen sčítání, odečítání, násobení a dělení, ale při použití math knihovny mi nezbylo prakticky žádné místo pro program. To jen tak na okraj. Dnes už programuju v Cčku, ale na určité operace mám podprogramy v ASM. Například bitový posun paměti (pole bytů) - posunutí obrazu o 1 pixel u 128x64 displeje.
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Starý somár začína...

Príspevok od používateľa romiadam » 06 Mar 2024, 23:28

Diki Lennox,

narychlo som o spocital a ASM ma + - 36 instrukcii a C-ko vygeneroval +- asi 6+4 instrukcii (pocital som narychlo, mohol som sa seknut trosku).

Necakal som az taky velky rozdiel. O tomto asi balu pisal.

Ale samozrejme, na vyslednu funkciu programu to nema vplyv, a to ci ma ten isty program 36 alebo 64 instrukcii, je uplne jedno.

Takze moj zaver je taky, ze programovat v C-ku, je velmi pohodlne a rychle, ale programator nevie ako sa tie instrukcie vykonavaju (raz som potreboval analyzovat Ckovy program v ASM a vtedy mi to pomohlo).

Najprv sa naucit ASM a potom prejst na C-ko (v cas, neostat pri ASM pridlho) je podla mna idealna volba, lebo programator vie co porobi kompilator, moze analyzovat program aj v ASM alebo vlozit ASM kod do C-kodu (ak je to kvoli niecomu nutne).

Ale je to vec vkusu, takze ja tu nechcem nikoho presviecat ani sa hadat. Len som tu napisal svoj nazor.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Používateľov profilový obrázok
budvar10
Pokročilý člen
Pokročilý člen
Príspevky: 989
Dátum registrácie: 15 Dec 2014, 10:55
Bydlisko: Košice

Re: Starý somár začína...

Príspevok od používateľa budvar10 » 07 Mar 2024, 10:12

Ja sa venujem AVR nie PIC, ale môžem povedať, že v C/C++ je možné vygenerovať rovnaký kód ako v ASM. Je ale potrebné dobre ovládať jazyk a aj rôzne nastavania okolo. Strávil som strašne veľa času porovnávanim vygenerovaného kódu v ASM na ATmega procesoroch. Sledoval som veľkosť aj rýchlosť programov. Mimochodom, nie je to to isté. Predpokladám teda, že situácia v PIC bude rovnaká.

To že C/C++ vkladá "nadbytočné" inštrukcie je tým, že programátor si neuvedomuje rozdiel v príkazoch a tiež, že prekladač má určité východzie nastavenia a tie môžu spôsobovať nadbytočné generovanie "nechceného" kódu. To všetko sa dá zmeniť a prispôsobiť. ASM je len zdanlivo priamejšia cesta.

Uvediem príklady:
- Neuvedomenie si veľkosti premennej v C/C++. Triviálna vec ale obrovský dopad na veľkosť a rýchlosť kódu.
- Spomínané ukladanie premennej do SRAM. Toto existuje aj v AVR svete. Ak chcem aby sa MCU držal registrov, je potrebné C/C++ program tak napísať. Som presvedčený, že aj C/C++ pre PIC má na to prostriedky.
- Prológ a epilóg programu a funkcíí. To je veľa kódu ktorý C/C++ vkladá automaticky. Napríklad bezpečná likvidácia objektov použitých v programe, záverečná nekonečná slučka. Potrebujem to? Ak môj program robí niečo donekonečna (poznáte to: while(1) { ... }), nikdy by sa tam nemal dostať. Dôležité je, že sa to dá vypnúť, ale C/C++ je aj o nejakých štandardoch. Ošetrí sám veci a možné chyby, ktoré si programátor častokrát ani neuvedomí ale stále má možnosť povedať mu, že to nechcem.

Nie som proti ASM, sám som išiel do detailov a som rád, že to ovládam. Mám z toho aj potešenie. C/C++ ale zjednodušuje vývoj programu, zprehľaňuje kód a je rovnako efektívne ako ASM. Kto tvrdí opak, buď nevie alebo má nejaký druh slepoty.

A ešte k Arduinu, aj to to tu bolo spomenuté. Arduino prispelo k neuveriteľne masovému rozšíreniu záujmu o procesory, automatizáciu, IoT, programovanie... po celom svete. Jeho veľkým prínosom je snaha zjednotiť a zjednodušiť používanie rôznych platforiem. Už dnes má také portfólio MCU, že jeden človek by potreboval 3 životy na štúdium. Že to bude nejakých puristov rozčuľovať, no a čo? Nečítajú datasheety, nepoznajú inštrukcie, blá-blá. Dumitru to veľmi pekne vystihol. Proste ak nechcú, nemajú sa s tým zaoberať. Niekto to už urobil za nich. Zbytočne by strácali čas, ktorý móžu venovať niečomu inému. Tak nech kľudne používajú hotové moduly, knižnice, a aj trebárs program vygenerovaný AI.
Na rozdiel od väčšiny ľudí, ja viem ako upiecť chlieb, robil som to ale už to nerobím. Kupujem v obchode, čo upiekol niekto iný.
1
Obrázok 1

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Starý somár začína...

Príspevok od používateľa romiadam » 07 Mar 2024, 11:09

Plne suhlasim s tym co si tu napisal.
Ktomu chlebu:
Ak si kupis chkieb ktoru iny upiekol a ktory sa da zjest ale ti nechuti, so znalostou citat datasheet, C a ASM programovania si ho dochutis podla vlastnych poziadaviek.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Používateľov profilový obrázok
Tribec Zacks
Pokročilý člen
Pokročilý člen
Príspevky: 709
Dátum registrácie: 26 Jún 2010, 00:00
Bydlisko: Levice / Cork IRL
Vek: 41
Kontaktovať používateľa:

Re: Starý somár začína...

Príspevok od používateľa Tribec Zacks » 07 Mar 2024, 15:40

03601 napísal: Mám s ASM zámer, či cieľ. Preto sa ho učím. C bude, ale najprv musím pochopiť HW, s ktorým mám ešte veľa problémov a ten HW sa napr. oveľa lepšie chápe cez ASM, čo som doteraz čítal. Ale to chápanie HW nie je dôvodom, prečo sa trápim s ASM. Zatiaľ ostanem na ASM!
pls vies nam objasnit ten asm ciel, lebo to tu takto ide z kopca... tiez by som ti najradsej odporucil investovat ten cas do C a cele nastavenie cpu priamym zapisom do registrov, toto sa bezne robi v C priamo a bez kniznic. HW sa s tym naucis dostatocne dobre, od nastavenia portov, casovacov, preruseni, periferii atd, aj to ako to vsetko hra dokopy. nemas co stratit, len ziskat. na male skusanie a blikanie lediek, cert to zober, len je to take skrabanie hrablami na zadku...

edit: ak chces pochopit ako funguje samotny procesor, tak je asi najlepsi nejaky emulator kde graficky vidis jednotlive flagy, napr, co urobi mcu ak mas negativny vysledok scitania, co urobi pri preruseni atd.

tak isto by ti pomohol plnohodnotny debuger ktorym mozes krokovat kod, ten ak by si aj pisal v c tak mas k dispozicii disassembly a vies krokovat samotne prelozeny kod do asm. myslim ze toto by ti dalo viac ako len pisat cisty asembler
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 07 Mar 2024, 16:25

Tribec Zacks, ďakujem za snahu mi pomôcť!
Tribec Zacks napísal: ...pls vies nam objasnit ten asm ciel...
Prepáč, ale je to osobné... nerieš to prosím.
Tribec Zacks napísal: ...ak chces pochopit ako funguje samotny procesor, tak je asi najlepsi nejaky emulator...
Toto znie sľubne, až na ten neurčitok vo vete "nejaky"... vieš o niečom?
Tribec Zacks napísal: ...tak isto by ti pomohol plnohodnotny debuger ktorym mozes krokovat kod...
Mám PICkit 3, čo by mal byť "In Circuit Debuger"... zatiaľ som sa nedostal k využitiu tejto funkcionality, len kŕmim cez PICkit PICko (16F88) z MPLAB IDE spatlaným kódom. Už som to skúšal. V konf. slove som nastavil _DEBUF _ON, ale dostanem hlášku s PICkit
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding.
Stepping target failed
Predpokladám, že je ešte čosi treba nastaviť, za Boha to neviem nájsť, že. Napadlo ma, že ak mám krokovať, musím ovládať oscilátor... len netuším ako.
0

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 07 Mar 2024, 16:44

Myslím romiadam, že "nadyšla Tvoja chvíľa"...
romiadam napísal:
06 Mar 2024, 02:24
Ty mas PIC16F88? Ak ano, tak to bola spravna volba, ten podporuje in-Circuit-Debuging
Mám PICkit 3, vývojovú dosku MIKROE EasyPIC V7 https://www.mikroe.com/easypic-v7, a v nej vrazený PIC16F88...
V konfig slove som zapol _DEBUG _ON, a skúšam krokovať. MPLAB IDE mi zostaví kód a pošle do PICka, ale ovládať to nejde. PICkit mi vyhodí hlášku
PK3Err0040: The target device is not ready for debugging.
Please check your configuration bit settings and program
the device before proceeding. Stepping target failed
Poraď prosím, čo mám zle?

Oné: v simulátore nemám problema!
0

Používateľov profilový obrázok
Tribec Zacks
Pokročilý člen
Pokročilý člen
Príspevky: 709
Dátum registrácie: 26 Jún 2010, 00:00
Bydlisko: Levice / Cork IRL
Vek: 41
Kontaktovať používateľa:

Re: Starý somár začína...

Príspevok od používateľa Tribec Zacks » 07 Mar 2024, 17:03

ja sa velmi neorientujem v PIC ekosysteme, tak velmi dalej neporadim, ale nieco taketo by ti urcite pomohlo:
https://www.oshonsoft.com/pic.php

predpoklady k debug modu su opisane v pickit3 users guide sekcia 2.6 debug requirements...

z toho rychleho pohladu na to.... ze no divoku architekturu si si to vybral :)

kazdopadne drzim palec
0
Kreativita a motivacia je to, co prinasa originalne napady a myslienky, disciplina je to, co ich dokaze zrealizovat.

Lennox
Stály člen
Stály člen
Príspevky: 291
Dátum registrácie: 12 Sep 2019, 22:51
Bydlisko: Bratislava

Re: Starý somár začína...

Príspevok od používateľa Lennox » 07 Mar 2024, 17:45

03601 napísal:
07 Mar 2024, 16:44
Poraď prosím, čo mám zle?
Oné: v simulátore nemám problema!
By som ti aj poradil, ale bojím sa aby moja rada neprekročila "pedagogický rozmer".
Skús počkať na povestný "aha moment" :mrgreen:

Alebo použi google, je tam toho okolo debugu a PK3 hodne popísane konkrétne aj tvoj problém s týmto istým PIC-om aj s riešením.
1
Obrázok 1

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 07 Mar 2024, 20:00

rLennox napísal:TBy som ti aj poradil, ale bojím sa aby moja rada neprekročila "pedagogický rozmer".
Zase si preskočil na druhý extrém...
Toto je práve pedagogický rozmer, lebo potrebujem to "špecifické drevené kružidlo na tabuľu s kriedou" a... kružidlo mám, ale krieda v ňom vŕzga po tabuli a nepíše... :lol: :lol: :lol: ...
0

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 07 Mar 2024, 20:57

Prosím poradiť.
V simulantovi mi to ide bez problémov. Debugovať to v In Circuit Debug nemôžem, lebo debug mi zaberie 2 piny na PORTB, RB7 - PGD a RB6 - PGC.
Má to pričítať do 0xFF (b.11111111) (celý PORTB = H) a potom odčítať do 0x00 (b.00000000) (celý PORTB = L) a dokola...
Funguje mi to do čísla 0x3F (b.00111111), ak dám čo i len o jedno číslo viac 0x40 (b.01000000), tak mi to už nefunguje. Mal by sa na zvolenej hodnote otočiť a odčítavať do 0. Lenže ak je číslo väčšie ako 0x3F, tak to pripočítava až do 0XFF a potom skočí na úplný začiatok kódu...
Tak ma napadá, či to dáko nesúvisí s CALL, alebo BTFSS STATUS, Z...

Kód: Vybrať všetko

INCR
	INCF	COUNT, f	; zvýšenie hodnoty v COUNT o 1
	MOVF	COUNT, W	; skopíruj hodnotu COUNT do W
	MOVWF	PORTB		; skopíruj hodnotu W do PORTB
	CALL	WAIT_LOOP	; čakaj
	MOVLW	0X3F		; vlož do W hodnotu
	XORWF	PORTB, W	; vykonaj XOR hodnoty PORTB a W
	BTFSS	STATUS, Z	; otestuj bit Z 
	GOTO	INCR		; Ak je hodnota bitu Z NErovná H, choď na INCR
DECR
	DECF	COUNT, f	; Ak je hodnota bitu Z rovná H / zníž hodnotu v COUNT o 1
	MOVF	COUNT, W	; skopíruj hodnotu COUNT do W
	MOVWF	PORTB		; skopíruj hodnotu W do PORTB
	CALL	WAIT_LOOP	; čakaj
	CLRW			; vynuluj W
	XORWF	PORTB, W	; vykonaj XOR hodnoty PORTB a W
	BTFSS	STATUS, Z	; otestuj bit Z
	GOTO	DECR		; Ak je hodnota bitu Z NErovná H, choď na DECR
	GOTO	INCR		; Ak je hodnota bitu Z rovná H, choď na INCR
0

Lennox
Stály člen
Stály člen
Príspevky: 291
Dátum registrácie: 12 Sep 2019, 22:51
Bydlisko: Bratislava

Re: Starý somár začína...

Príspevok od používateľa Lennox » 07 Mar 2024, 21:22

len tak pre zaujímavosť, tento kód čo som postol na predch. strane ti nefunguje?

Kód: Vybrať všetko

;------------------------------------------------------------------------------
; PROCESSOR DECLARATION
;------------------------------------------------------------------------------
     LIST      p=16F88
     #INCLUDE <P16F88.INC>
;------------------------------------------------------------------------------
; CONFIGURATION WORD SETUP
;------------------------------------------------------------------------------
     __CONFIG    _CONFIG1, _CP_OFF & _CCP1_RB0 & _DEBUG_OFF & _WRT_PROTECT_OFF & _CPD_OFF & _LVP_OFF & _BODEN_OFF & _MCLR_OFF & _PWRTE_ON & _WDT_OFF & _INTRC_IO
     __CONFIG    _CONFIG2, _IESO_OFF & _FCMEN_OFF
;------------------------------------------------------------------------------
; VARIABLE DEFINITIONS
;------------------------------------------------------------------------------
 VARIABLES  UDATA
 COUNT	RES 1
;------------------------------------------------------------------------------
; RESET VECTOR
;------------------------------------------------------------------------------
 RESET     ORG     0x0000            ; processor reset vector
 GOTO      START
;------------------------------------------------------------------------------
; INICIALIZÁCIA 
;------------------------------------------------------------------------------
START 
    MOVLW   b'01111110'   ; 8MHz int
    BANKSEL OSCCON
    MOVWF   OSCCON

    BANKSEL PORTB
    CLRF    PORTB

    BANKSEL OPTION_REG
    CLRF    ANSEL

    BANKSEL TRISB
    MOVLW   0X00
    MOVWF  TRISB

    CLRF    COUNT
;------------------------------------------------------------------------------
; VLASTNÝ PROGRAM
;------------------------------------------------------------------------------
INCR
   BANKSEL PORTB
   INCF    COUNT, F
   MOVF    COUNT, W
   MOVWF   PORTB
   CALL    WAIT_LOOP
   MOVF    COUNT, W
   XORLW   D'255'
   BTFSS   STATUS, Z
   GOTO    INCR
   
DECR
   DECF    COUNT, F
   MOVF    COUNT, W
   MOVWF   PORTB
   CALL    WAIT_LOOP
   MOVF    COUNT, W
   BTFSS   STATUS, Z
   GOTO    DECR
   GOTO    INCR
;------------------------------------------------------------------------------
; CAKACIA SLUCKA
;------------------------------------------------------------------------------
WAIT_LOOP
DELAY
    MOVLW D'200'
    MOVWF 10
    MOVWF 11
DELAY_LOOP
    DECFSZ 10, F
    GOTO DELAY_LOOP
    DECFSZ 11, F
    GOTO DELAY_LOOP
    RETLW 0

   END
   
Tento riadok v kóde XORLW D'255' číslo zmeň na akékoľvek v rozsahu 1-255 a bude ti to počítať do toho čísla a späť.
Či je toto iba nejaká blbá hra alebo sociálny experiment či čo :rolleyes:
0

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Starý somár začína...

Príspevok od používateľa Atlan » 07 Mar 2024, 21:38

prejdi na to Cko !!!!!
usetris si vela starosti este k tomu na PIC co nema plne adresovanie....

vies co robi toto?
; VARIABLE DEFINITIONS
;------------------------------------------------------------------------------
CBLOCK 0x20
COUNT_LOOP
ENDC
Ono ta tvoja premena nieje dostupna v vsetkych babnkach...... vid strana 12 datasheete, DATASHEET to je TO co mas pouzivat najviac hlavne ked asmbler luskas.

A vies ako je zdielana pamet v PIC v jednotlivych bankach ? a pozuivas vobec prepinanie medzi bankami ?

Presne tieto veci riesi prechod k C mozes sa venovat programovaniu a nie riesit problemi danej architektury...
2
Obrázok 2

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 07 Mar 2024, 21:56

Ďakujem Atlan!

K bankám som sa ešte nedopracoval...
0

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 07 Mar 2024, 22:10

Lennox napísal:
07 Mar 2024, 21:22
len tak pre zaujímavosť, tento kód čo som postol na predch. strane ti nefunguje?
Áno fungoval!
Lennox napísal:
07 Mar 2024, 21:22
Tento riadok v kóde XORLW D'255' číslo zmeň na akékoľvek v rozsahu 1-255 a bude ti to počítať do toho čísla a späť.
Či je toto iba nejaká blbá hra alebo sociálny experiment či čo :rolleyes:
Tak som si povedal, že keď som zvládol bitový posun... tak zvládnem aj takúto chujovinu s tým, čo už akože viem. A zasekol som sa na tom, že chujovinu nezvládam, lebo zjavne viem hovno... :oops:

Momentálne mi tie banky vyrazili dych. PORTB vidím v 0. a v 2. banke a zatiaľ som mimo prečo je jeden port v dvoch bankách... a ako to súvisí s tými mojimi "premennými", či "konštantami"... (aj z toho som v riti, raz sa to volá tak, raz onak)... :D :D :D

Seriem na blikátka, idem študovať ďalej...
0

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Starý somár začína...

Príspevok od používateľa romiadam » 08 Mar 2024, 01:50

03601 napísal:
07 Mar 2024, 16:44

Poraď prosím, čo mám zle?
Neviem, ale skontroluj toto:

Najprv vyber debuger "None" (Debuger - Select tool - None)

potom skontroluj toto
image.png

image.png
Uisti sa ze tam je fajocka "Configuration bits set in code".

Podla tej hlasky to vyzera na tento problem (ale nemusi to byt ono).

Ked tam nebola fajocka tak to bude asi problem. Daj tam fajocku a zavri to okno. Potom sa uiti ze v kode je _Debug_ON.

Potom pripoj pickit3 (Debuger - Select tool - Pickit3) a mal by si mat v output okne nieco taketo
image.png
Ja ta mam Pickit2, lebo moj Pickit3 je problematicky (vela ludi stym ma problemy) pre niektore MCU. Mne vobec nespozna MCU 16F88. Toto mi vypisuje:
image.png
Tak som vyskusal PICKit2 a ten nemal ziaden problem. Rozpoznal ho na prvy sup. Ak ti bude Pickit3 blbnut, skus (ale na vlastne riziko) toto:
http://ww1.microchip.com/downloads/en/D ... oltage.pdf

(5-ty prispevok zhora https://forum.microchip.com/s/topic/a5C ... AO/t293401)

Ja to zajtra skusim (vyskratovat tie 2 odpory na PICkit3 programatore (a dam ti vediet co i to pomohlo - EDIT: ja tam uz mam 0R odpory, takze nemam co "vylepsovat" :crying: ), lebo pri ext. napajanim 5.02V stale nerozoznal MCU). Niekto na internete pisal ze treba minimalizovat dlzku kablov medzi MCU a programatorom. Skus aj to napr. 5cm. Ja mam 20cm. U Pickit2 to nikdy nebol problem, takze ja kable kratit nebudem.
Pickit3 som si kupil len preto lebo jeden MCU ktory som chcel naprogramovat vyzadoval Pickit3. Aj u neho mi obcas zblbol a nenacital MCU, ale aspon ho nacital. Tento 16F88 nechce vobec nacitat.

No a ked uz mas toto vporiadku ako ja U Pickit2, tak potom skompiluj cely program tlacitkom BUILD ALL a mal by si mat nieco taketo (ja to mam pre Pickit2).
image.png
A na koniec si vloz do programu Breakpoint (2x klikni na dany riadok v hlavnom programe a objavi sa tam cerveny kruzok s bielym B), a stlac "RUN" debugovacie tlacitko. A ked ti program zastane pri breakpointe, tak uz mozes krokovat s tlacitkom STEP INTO alebo niekde inde dat dalsi Breakpoint a stlacis zase RUN. Neviem ci pocet breakpointov zavisi od programamtora lebo MCU, ale myslim ze s Pickit2 som mal len 1 a s Pickit3 az 3 breakpointy.

Tak daj potom vediet, ci si to rozchodil.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Starý somár začína...

Príspevok od používateľa Atlan » 12 Mar 2024, 08:52

Preto. Ti tvrdime ze mas prejst na C. Co je pouzitelne na vsetkych uP, kdez to asembler je uzko specializovana vec a este aj napr pic 16 a pic 18 marozdiely.

A. Co ta caka s ASM sme uz napisali, zbytocne problemi.

Ako to napisat polopatisticky....
Konstanta je cislo priradene pismenu(slovu) napr const X=10. Vysledok je ten ze pri preklade sa namiesto X pevne dosadi cislo 10. Tj ked to napalis do uP namiesto a tam napils 10

Premena je miesto v Ram do ktorej mozes pocas behu programu zapisovat a citat modifikovat hodnotu.

Az by si pouzil C na trn tvoj uP. Nemusis riesit prepinanie baniek a sledovanie ci si prepnuty v tej spravnej. Teoreticky nemusis sledovat na ktoru adresu si umiestnil premene (tj ci su dostupne v vserkych bakach alebo len niektorej) akurat musis pocitat stym ze globalnych premenych je 16 ale to hned vies a vidis.

Nemusis sledovat na ktorej adrese mas umiestneny program aby fungovalo PClatch pac ten chodi len do 256adries aj to nesmies prekrocit adresaciu.

Cize zisk z asm je minimalny, hlavne v dnesnej dobe ked je dostupnych plno uP a tutorialov v Cku.
2
Obrázok 2

romiadam
Ultimate člen
Ultimate člen
Príspevky: 4418
Dátum registrácie: 09 Apr 2008, 00:00
Bydlisko: Wicklow, Irsko
Vek: 47

Re: Starý somár začína...

Príspevok od používateľa romiadam » 12 Mar 2024, 21:17

Ked sa s tymto vsetkym co si tu popisal oboznami, moze prejst na C-cko. Sice to tam nebude potrebovat, ale bude vediet, ze co sa deje v MCU a kolko roboty ma kompilator.
Ja napriklad nelutujem, ze som sa naucil ASM. Ba naopak, tesim sa ze viem co sa deje v MCU a neprogramujem tzv. ciernu skrinku. Hlavne ak sa pozriem do ASM kodu v C, viem o com to tam je.
Ale toto je ako s jedlom, proti gustu ziaden disputat.
0
Prepáčte mi za diakritiku a preklepy - väčšinou píšem z mobilu a ENG klavesnice.
(výroky nemenovaného člena fóra:) ...základy elektrotechniky ovládam dokonale, tak napr. taký tyristor neviem ako presne funguje

Atlan
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1148
Dátum registrácie: 01 Feb 2008, 00:00
Bydlisko: Kosice okolie

Re: Starý somár začína...

Príspevok od používateľa Atlan » 13 Mar 2024, 07:30

Ako nahle pouzije C na iny uP tak mu ten asm z pic bude na h... O :D
0

03601
Okoloidúci
Okoloidúci
Príspevky: 45
Dátum registrácie: 20 Feb 2024, 18:42
Vek: 63

Re: Starý somár začína...

Príspevok od používateľa 03601 » 19 Mar 2024, 22:02

Správa o stave vecí verejných!
Asi sa rehníte, že som sa na to vys... ale opak je pravdou! Momentálne sa borím s booleovou algebrou, so sčítaním, odčítaním, násobením a delením bytov, posunom bitov, dvojkovým doplnkom a týmito sračkami, ktoré som sa mal naučiť keď mi bolo 17. Lenže vtedy bola kybernetika buržoázna paveda a tak nás trápili sprostosťami z prostredia množín, bez akéhokoľvek napojenia na realitu... plieskala s nami puberta a my sme v škole rátali prieniky množín hrušiek do množín jabĺčok a matiku s tým spojenú... Gule lietali ako na vianočnom stromčeku a matikári si trhali vlasy z toho, ako sme im na to srali...
Povedal som si, že ten základ musím pochopiť logicky a aj matematicky. Ide mi to hovädsky pomaly. Mám problém sa motivovať, lebo tuším, že mi to v bežnom živote bude zrejme nahovno.
Beriem to však ako mozgovú gymnastiku! Popravde, aj celý môj pokus o assembler a PIC je vlastne moja osobná previerka, či na obzore aktívneho života ešte prelomím svoju mozgovňu! Sviňa jedna šedivá, je lenivá ako prašivý pes na bitúnku!!! Hádže mi polená pod nohy a láka ma na všetky možné strany ako siréna námorníkov...
Howgh.
0

Napísať odpoveď
  • Podobné témy
    Odpovedí
    Zobrazení
    Posledný príspevok