Чт июн 16, 2022 20:14:01
Чт июн 16, 2022 20:15:00
Чт июн 16, 2022 21:15:56
Ivanoff-iv писал(а): нельзя зацепив провода к подряд идущим пинам одного порта сделать:
Чт июн 16, 2022 21:19:37
Откуда ты это выдрал? ИЗ CVAVR? Эта фича только есть у него.roman.com писал(а):а такты процессора посчитал ?
сравнил с этим ?
PINC.0
Чт июн 16, 2022 21:21:10
Чт июн 16, 2022 21:36:00
if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.0 == 0) {x &= 0b11111110;};
if (PINC.1 == 1) {x |= 0b00000010;};
if (PINC.1 == 0) {x &= 0b11111101;};
if (PINC.2 == 1) {x |= 0b00000100;};
if (PINC.2 == 0) {x &= 0b11111011;};
if (PINC.3 == 1) {x |= 0b00001000;};
if (PINC.3 == 0) {x &= 0b11110111;};
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD0))==0) {x &= 0b11111110;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD1))==0) {x &= 0b11111101;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD2))==0) {x &= 0b11111011;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
if ((PIND &(1<<PD3))==0) {x &= 0b11110111;};
Чт июн 16, 2022 21:37:28
На, застрелисьroman.com писал(а):а такты процессора посчитал ?
сравнил с этим ?
Чт июн 16, 2022 21:41:27
olegue писал(а):Добавлено after 5 minutes 29 seconds:
а , ну да, удобнее же взять пины одноо регистра
например PD0,pd1,pd2,pd3 и подать на них, а как из "взять"? Эти биты?
Чт июн 16, 2022 21:44:32
x = ((PINC&(1<<0))?(1<<3):0) \
| ((PINC&(1<<1))?(1<<1):0) \
| ((PINC&(1<<2))?(1<<2):0) \
| ((PINC&(1<<3))?(1<<0):0);
x = ((PINC&(1<<2))?(1<<0):0) \
| ((PINC&(1<<1))?(1<<1):0) \
| ((PINC&(1<<3))?(1<<2):0) \
| ((PINC&(1<<7))?(1<<3):0);
Чт июн 16, 2022 21:44:47
в его случае - захлебнисьDimon456 писал(а):На, застрелись
Чт июн 16, 2022 22:32:01
Dimon456,Dimon456 писал(а):Вам надо поменять биты местами
Код:
x = ((PINC&(1<<0))?(1<<3):0) \
| ((PINC&(1<<1))?(1<<1):0) \
| ((PINC&(1<<2))?(1<<2):0) \
| ((PINC&(1<<3))?(1<<0):0);
или пины местами
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD0))==0) {x &= 0b11111110;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD1))==0) {x &= 0b11111101;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD2))==0) {x &= 0b11111011;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
if ((PIND &(1<<PD3))==0) {x &= 0b11110111;};
Пт июн 17, 2022 00:37:28
if (PINC.0 == 1) {x |= 0b00000001;};
if (PINC.0 == 0) {x &= 0b11111110;};
if (PINC.1 == 1) {x |= 0b00000010;};
if (PINC.1 == 0) {x &= 0b11111101;};
if (PINC.2 == 1) {x |= 0b00000100;};
if (PINC.2 == 0) {x &= 0b11111011;};
if (PINC.3 == 1) {x |= 0b00001000;};
if (PINC.3 == 0) {x &= 0b11110111;};
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD0))==0) {x &= 0b11111110;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD1))==0) {x &= 0b11111101;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD2))==0) {x &= 0b11111011;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
if ((PIND &(1<<PD3))==0) {x &= 0b11110111;};
Dimon456 писал(а):На, застрелисьroman.com писал(а):а такты процессора посчитал ?
сравнил с этим ?Спойлер
Выкинь этот компиляторСпойлер
Пт июн 17, 2022 05:38:00
Пт июн 17, 2022 07:12:06
roman.com писал(а):ещё короче ?
x = 0;
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
roman.com, попробуй для начало вот такwarning: bitwise comparison always evaluates to false [-Wtautological-compare]
x = 0;
PORTD = 0b10000100;
if ((PIND &(1<<PD0))==1) {x |= 0b00000001;};
if ((PIND &(1<<PD1))==1) {x |= 0b00000010;};
if ((PIND &(1<<PD2))==1) {x |= 0b00000100;};
if ((PIND &(1<<PD3))==1) {x |= 0b00001000;};
Пт июн 17, 2022 07:29:49
Пт июн 17, 2022 08:02:09
На, держиroman.com писал(а):IN R22, PINC // -1 такт
LDI R21, 0b00000000 // -1 такт
SBRC R22, 0 // -1 такт
ORI R21, 0b00000001 // -1 такт
SBRC R22, 1 // -1 такт
ORI R21, 0b00000010 // -1 такт
SBRC R22, 2 // -1 такт
ORI R21, 0b00000100 // -1 такт
SBRC R22, 3 // -1 такт
ORI R21, 0b00001000 // -1 такт
OUT PORTD, R21 // -1 такт
итого: 11 тактов процессора
Пт июн 17, 2022 09:04:51
Пт июн 17, 2022 09:13:29
Пт июн 17, 2022 09:20:02
Пт июн 17, 2022 10:17:17