Re: Názvy proměnných
Slavomir Skopalik
skopalik na elektlabs.cz
Sobota Duben 13 00:08:20 CEST 2024
1. Vse v kodu anglicky (vcetne komentaru)
2. Lokalni promene co nejkratsi, a platnost pouze pro nezbytnou cast kodu.
3. Globalni promenne popisne, ale neprehanet
4. Globalni promenne az na vyjimky jako struktury
5. Pokud to kompiler umi, tak c++ (a klidne psat jak v c)
Duvody:
struktury mohou mit metody, auto, tridy
Takze klidne:
for(int i=0; i<4; i++){
}
a hned potom znovu
for(int i=0; i<4; i++){
}
To ze i plati vzdy jen pro telo cyklu zajistuje, ze nebude nikde omylem
pouzito.
Dalsi vyhodou je "izolace" kodu, pokud je nekam zkopirujete, tak sebou
nese vse nezbytne.
Pri psani pro ARM hodne vyuzivam inline.
Ukazka spolecneho predka pro vsechny RS komunikace (NXP ARM MCU):
class UART_t{
protected:
unsigned long LastRxTime;
public:
int Transactions; // How many Rx
transactions from system start
int CRCFails = 0; // CRC RX fails
int RxOverRun = 0;
LPUART_Type * BaseAddr = NULL;
short Port = 0;
bool Enabled;
bool Logging = false;
bool SingleWireMode; // Set LPUART
into single wire mode (
bool RTSEnable; // Enable RTS
bool RTSPolarityInversion; // invert RTS polarity
// Methods
void Open(short APort, int a_CLK, unsigned int BaudRate);
void Close();
void BlockedSend(char c); // Try send char, if buffer is
full than wait for empty
void Purge(); // drop input FIFO
// inline methods
inline bool isTxEmpty(){
return BaseAddr->STAT & LPUART_STAT_TDRE_MASK;
}
inline bool isTransmiting(){
return !(BaseAddr->STAT & LPUART_STAT_TC_MASK);
}
inline void SendChar(char c){
BaseAddr->DATA = c;
}
inline bool ReceiveChar(char* c){
uint32_t st = BaseAddr->STAT;
if( st & LPUART_STAT_OR_MASK){
BaseAddr->STAT = LPUART_STAT_OR_MASK; // clear
Over Run flag Note:While the OR flag is set, no additional data is
stored in the data buffer even if sufficient room exists.
RxOverRun++;
}
if( !(st & LPUART_STAT_RDRF_MASK) ) return false;
*c = BaseAddr->DATA;
LastRxTime = _T0TC;
return true;
}
inline void SetDirection(bool tx_dir){ // Set direction
in single wire mode tx_dir = true -> transmitting
if(tx_dir)
BaseAddr->CTRL |= LPUART_CTRL_TXDIR_MASK;
else
BaseAddr->CTRL &= ~LPUART_CTRL_TXDIR_MASK;
}
};
Slavek
Ing. Slavomir Skopalik
Executive Head
Elekt Labs s.r.o.
MASA - Collection and evaluation of data from machines and laboratories
http://eng.elektlabs.com/products-and-services/masa
-----------------------------------------------------------------
Address:
Elekt Labs s.r.o.
Chaloupky 158
783 72 Velky Tynec
Czech Republic
---------------------------------------------------------------
Mobile: +420 724 207 851
skype:skopaliks
e-mail:skopalik na elektlabs.com
http://www.elektlabs.com
On 12.04.24 09:57, Martin Záruba wrote:
> Používáte názvy proměnných:
>
> 1) v češtině/sloveštině
>
> 2) v angličtině
>
> 3) úplně jinak
>
>
> Vytváříte názvy tak, aby dávaly smysl:
>
> 1) změnaNapětíNaBateriimV
>
> 2)dUBat // změna napětí na baterii v mV
>
> 3) jinak
>
Další informace o konferenci Hw-list