Страница 2 из 2

ЦАП R-2R (DAC R-2R) на Arduino

Добавлено: 04 мар 2019, 15:04
Ivan_Kornege
[ref=#ff8000]Sancho[/ref], а разжуйте плиз, почему
// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3); // вот здесь что такое a>>6 и 0xF3 ?

ЦАП R-2R (DAC R-2R) на Arduino

Добавлено: 04 мар 2019, 15:51
Sancho
Ivan_Kornege писал(а): 04 мар 2019, 15:04[ref=#ff8000]Sancho[/ref], а разжуйте плиз, почему
// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3); // вот здесь что такое a>>6 и 0xF3 ?
// PORTC &= (a>>8 | 0xFC); // сдвиг на восемь бит два старших бита из второго байта, т.к переносили для 0 и 1-го битов, и "или" с В1111 1100
PORTC &= (a>>6 | 0xF3); // вот здесь что такое a>>6 и 0xF3 ?
Так как в новом варианте биты 2 и 3, то сдвигаем на шесть и "ИЛИ" с В1111 0011

Отправлено спустя 33 минуты 24 секунды:
Возможно, сейчас подумал, в моей идее есть косячок :)
Нужно будет записывать регистр С в два этапа:
PORTC &= 0xF3; // переведём два бита, второй и третий, принудительно в ноль, а затем
PORTC |= (a>>6 & 0x0C); // запишем по "ИЛИ" чего у нас есть
Иначе по "И" записать поверх нулей единицы не получится. Так-же, как и по "ИЛИ" нули поверх единиц.
Надеюсь, автор темы читает :) и кто-нибудь попробует

Отправлено спустя 3 минуты 18 секунд:
Сори.

ЦАП R-2R (DAC R-2R) на Arduino

Добавлено: 04 мар 2019, 16:12
Ivan_Kornege
Вот уже ответили не успел спросить про перезапись пока ужин унчтожал.
А то на службе крутой программер начал критиковать FLp. Ну и т.д. как всегда .

ЦАП R-2R (DAC R-2R) на Arduino

Добавлено: 04 мар 2019, 17:48
AVGN
Sancho писал(а): 04 мар 2019, 15:51Возможно, сейчас подумал, в моей идее есть косячок :)
Нужно будет записывать регистр С в два этапа:
PORTC &= 0xF3; // переведём два бита, второй и третий, принудительно в ноль, а затем
PORTC |= (a>>6 & 0x0C); // запишем по "ИЛИ" чего у нас есть
Иначе по "И" записать поверх нулей единицы не получится. Так-же, как и по "ИЛИ" нули поверх единиц.
Надеюсь, автор темы читает :) и кто-нибудь попробует
Вот так правильно?
[spoiler]

Код: Выделить всё

setup ()
{

DDRD = 0xFF; // все выход
//DDRC = DDRC | 0x03; // 0 и 1 выход
DDRC = DDRC | 0x0C; //устанавливаем цифровые выводы PC2 и PC3 в качестве выходов
}

loop ()
{
//PORTD = a & 0xFF; // здесь младшие
//PORTC &= (a>>8 | 0xFC); // грузим только в два младших бита старшие входного

PORTC &= 0xF3; // переведём два бита, второй и третий, принудительно в ноль, а затем
PORTC |= (a>>6 & 0x0C); // запишем по "ИЛИ" чего у нас есть
а++;

} 



[/spoiler]

ЦАП R-2R (DAC R-2R) на Arduino

Добавлено: 04 мар 2019, 19:02
Sancho
[ref]AVGN[/ref], Вот так
DAC R-2R 10bit_test_01.flp

ЦАП R-2R (DAC R-2R) на Arduino

Добавлено: 04 мар 2019, 19:24
AVGN
[ref=#ff8000]Sancho[/ref], спасибо.
Изменил проект поставил другой блок энкодера (с библиотека Encoder.h) и подключил к 10 и 12 ноге ардуино
DAC R-2R 10bit_test_01_FLP4_2_4.flp