[ref=#ff8000]Sancho[/ref], а разжуйте плиз, почему
// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3); // вот здесь что такое a>>6 и 0xF3 ?
ЦАП R-2R (DAC R-2R) на Arduino
- Ivan_Kornege
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 29 апр 2017, 08:24
- Откуда: гАндурас
- Имя: Ivan
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
// PORTC &= (a>>8 | 0xFC); // сдвиг на восемь бит два старших бита из второго байта, т.к переносили для 0 и 1-го битов, и "или" с В1111 1100Ivan_Kornege писал(а): 04 мар 2019, 15:04[ref=#ff8000]Sancho[/ref], а разжуйте плиз, почему
// PORTC &= (a>>8 | 0xFC); меняем на
PORTC &= (a>>6 | 0xF3); // вот здесь что такое a>>6 и 0xF3 ?
PORTC &= (a>>6 | 0xF3); // вот здесь что такое a>>6 и 0xF3 ?
Так как в новом варианте биты 2 и 3, то сдвигаем на шесть и "ИЛИ" с В1111 0011
Отправлено спустя 33 минуты 24 секунды:
Возможно, сейчас подумал, в моей идее есть косячок

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

Отправлено спустя 3 минуты 18 секунд:
Сори.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
- Ivan_Kornege
- Лейтенант
- Сообщения: 338
- Зарегистрирован: 29 апр 2017, 08:24
- Откуда: гАндурас
- Имя: Ivan
ЦАП R-2R (DAC R-2R) на Arduino
Вот уже ответили не успел спросить про перезапись пока ужин унчтожал.
А то на службе крутой программер начал критиковать FLp. Ну и т.д. как всегда .
А то на службе крутой программер начал критиковать FLp. Ну и т.д. как всегда .
ЦАП R-2R (DAC R-2R) на Arduino
Вот так правильно?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); // запишем по "ИЛИ" чего у нас есть
а++;
}
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
- Sancho
- Полковник
- Сообщения: 4066
- Зарегистрирован: 25 дек 2015, 17:32
- Откуда: Ярославль.
- Имя: Александр
- Поблагодарили: 5 раз
- Контактная информация:
ЦАП R-2R (DAC R-2R) на Arduino
[ref]AVGN[/ref], Вот так
У вас нет необходимых прав для просмотра вложений в этом сообщении.
мой ник в нете и почте omelchuk890, если что. запомните на всякий. многие знают номер тлф.
ЦАП R-2R (DAC R-2R) на Arduino
[ref=#ff8000]Sancho[/ref], спасибо.
Изменил проект поставил другой блок энкодера (с библиотека Encoder.h) и подключил к 10 и 12 ноге ардуино
Изменил проект поставил другой блок энкодера (с библиотека Encoder.h) и подключил к 10 и 12 ноге ардуино
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Если вы не можете объяснить это просто – значит, вы сами не понимаете этого до конца.
☆Альберт Эйнштейн
☆Альберт Эйнштейн
Кто сейчас на конференции
Сейчас этот форум просматривают: нет зарегистрированных пользователей и 1 гость