MPLAB x IDE - ako sledovat BOOL

C,C++,C#

Moderátori: psichac, Moderátori

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

MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa romiadam » 10 Jún 2022, 18:11

Cavte,

Ako skontrolovat hodnotu SFR vo watch mi je jasne.

Neviem ale ako sa da sledovat len jeden bit. Ak ja deklarujem pred void main (void) BOOL premennu napr. bool LED_ON = false, a v programe sa rozne prepina na true a false, ako to ja mozem odsladovat vo watch tabulke? Ako ja zistim ku ktoremu SFR ho kompilator priradil a ku ktoremu bitu?

Da sa to?

Alebo inak sa opytam, tento zapis bool LED_ON = false priradi len jeden bit pre LED_ON alebo cely byte?
Predpokladam ze kompilator ma tolko rozumu a len jeden bit ale nie som si isty.

A ked len jeden bit, potom ako sa to da sledovat vo watch tabulke?
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
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa balu » 10 Jún 2022, 19:08

Špatná zpráva je, že bool zabírá celý byte.
FALSE = 0
TRUE = vše ostatní.

Takže ve watch vidíš, že bool proměnná nabývá hodnot TRUE nebo FALSE. Co je za tím interně je programátorovi skryto.

Pokud chceš mít bool jako jeden bit, dá se to jednoduše obejít. Podívej se sem : https://forum.mcontrollers.com/t/c-a-flagy/3550

Používám to zcela běžně pro statusy programu, stavy různých řetězců atd. Pak máš v jednom byte 8 přímo přístupných bool stavů.
0

MiloPS3
Stály člen
Stály člen
Príspevky: 480
Dátum registrácie: 20 Apr 2011, 00:00
Bydlisko: Lazne Kynzvart / CZ

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa MiloPS3 » 11 Jún 2022, 10:24

musis zapnout debug a v Window->debugging->variables, najdes podle nazvu nebo napises nazev a odentrujes , to stejny ve watch
bool zabere celej byte
bool_mplax.jpg
0

Používateľov profilový obrázok
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1298
Dátum registrácie: 01 Feb 2010, 00:00
Bydlisko: Martin

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa mac26 » 11 Jún 2022, 11:32

s XC8 mozes pouzit aj typ "__bit"

Kód: Vybrať všetko

__bit x = 0;
0

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

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa romiadam » 11 Jún 2022, 20:26

Balu,
dakujem. Ta druha moznost s pouzitim "struct" sa mi vidi lepsia. Len to este musim presne pochopit ako to funguje. Sice to na tom odkaze vysvetlujes, ale pre mna este to nie je celkom jasne. Musim si nastudovat typedef a struct. To este neovladam. Ale chapem to co tam pises.

Edit: tu je to este podrobnejsie popisane,
https://www.tutorialspoint.com/cprogram ... fields.htm
a uz to chapem. Super. Diki moc

Mohol by som to tu vyuzit?
Ja teraz pracujem s RTC kde v jednom registri mam dve cisla (lover a higher nibble). Napr cas 12 hodin je v jednom registri ako 1-> 0001 a 2 -> 0010 teda spolu to tvori 0001 0010.
Ak tie vsetky cisla ulozim do zvlast registrov tak dokopy potrebujem 15 registrov: 11/06/22 19:44:25.00 + week day 1-7 -> (3bity)
Keby som chcel usetrit nejake registre, tak by som mohol definovat pre desiatky hodin 2 bity (meni sa len od 0-2 a na to stacia dva bity), pre desiatky dni 2 bity (meni sa od 0-3), desiatky mesiace 2bity (meni sa len od 0-1) a pod.
Takze tu by sa to dalo vyuzit a dokopy by som potreboval len 6 bajtov. Ide mi tu len o princip, nebudem si komplikovat zivot. Pre tieto registre dam zvlast registre. Je to jednoduchsie.
Ale pre Flagy (priznaky) je to super vec.

Mac26
mozes sa troska viac rozpisat, popr. kde na internete to je rozpisane?
Napisal som do google "c programing __bit" a mmoc mi toho nenasiel.
Dakujem
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
mac26
Zaslúžilý člen
Zaslúžilý člen
Príspevky: 1298
Dátum registrácie: 01 Feb 2010, 00:00
Bydlisko: Martin

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa mac26 » 12 Jún 2022, 09:34

0

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

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa romiadam » 12 Jún 2022, 12:30

Super,
No a teraz sa musim rozhodnut co pouzivat. :D
Dakujem.
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
balu
Pokročilý člen
Pokročilý člen
Príspevky: 540
Dátum registrácie: 21 Feb 2022, 12:06

Re: MPLAB x IDE - ako sledovat BOOL

Príspevok od používateľa balu » 12 Jún 2022, 13:26

V klidu - všechny 3 odkazy popisují totéž - přístup k jednotlivým bitů pomocí struct.
0

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