Size: a a a

2021 October 10

R

Rob in ELECTRONIX
скорее всего копия  из какого-нибудь сишника
источник

V

Vit in ELECTRONIX
а почему лень?)
источник

V

Vit in ELECTRONIX
а как нелениво будет?
источник

d

drvmotor in ELECTRONIX
if((int8_t)byte[3] < 0) 😂
источник

V

Vit in ELECTRONIX
вот вот!)
источник

I

Ilya 🇧🇾 in ELECTRONIX
Вначале наложили маску. Потом проверили результат.
источник
2021 October 11

d

drvmotor in ELECTRONIX
а интересно, CSE в любом компиле такое умеет оптимизировать?
вот чую что в SDCC - не умеет ))
источник

T

Thorn in ELECTRONIX
так делают, если маскируется несколько бит, чтобы проверить, что они все установлены:
if ((x & 0xC0) == 0xC0) ...

ну и скобки таки нужны, а то у == больший приоритет, чем у & 😂
источник

I

Ilya 🇧🇾 in ELECTRONIX
Как я понимаю должен. Это же обычная логика на входе N бит на выходе один.
источник

T

Thorn in ELECTRONIX
if (x & 0x80 == 0x80) — это if (x & 1)
источник

DS

Dolphin Soft in ELECTRONIX
RA1=((byte[2] & 0x80) == 0x80);
источник

DS

Dolphin Soft in ELECTRONIX
В любом случае, если у него RA1 не статик, компиллер выкинет.
источник

DS

Dolphin Soft in ELECTRONIX
SDCC вобще не умеет оптимизировать.
источник

d

drvmotor in ELECTRONIX
я на stm8 пробовал,
оптимизаций не заметил, но все что было нужно - поместилось
источник

DS

Dolphin Soft in ELECTRONIX
Они вроде начали внедрять какую-то базовую, но еще не тыкал. А вобще он генерит код не ахти какой. Особенно под z80.
источник

DS

Dolphin Soft in ELECTRONIX
Частично спасает только - __z88dk_fastcall __naked;
источник

DS

Dolphin Soft in ELECTRONIX
И то, что он генерит исходник на Асме, который можно потом пропустить оптимизатором
источник

d

drvmotor in ELECTRONIX
гг пытаюсь присмотреться в части х51
но чета стремновато )
источник
2021 October 13

D

Dim in ELECTRONIX
Dim, [13.10.21 18:30]
манчестер реализуется с прерываниями от порта и от таймера

Dim, [13.10.21 18:31]
причем раздельно

Dim, [13.10.21 18:31]
вот думаю как это в сях прописать

Dim, [13.10.21 18:31]
+ еще double32 с фиксированоой точкой

Dim, [13.10.21 18:31]
даже не знаю что это такое
источник

D

Dim in ELECTRONIX
вот такой пример нашел в компиляторе
void main(void){

TRISB = 0x80; // Only RB7 will interrupt on change
IPEN = 1; // Interrupt priorities enabled
PEIE = 1; // enable peripheral interrupts
RBIP = 0; // make this a low priority interrupt
RBIE = 1; // enable PORTB change interrupt
RBIF = 0; // clear any pending events
GIEL = 1; // enable low-priority interrupts
while(1)continue; // sit here and wait for interrupt
}
void interrupt low_priority b_change(void){
if(RBIE && RBIF){
PORTB; // Read PORTB to clear any mismatch
RBIF = 0; // clear event flag
// process interrupt here
}
}
источник