voidSPI_MasterInit(void){ /* Включили SPI, мастер, установили частоту Fck/128 */ SPCR=(0<<SPIE)|(1<<SPE)|(0<<DORD)|(1<<MSTR)|(0<<CPOL)|(0<<CPHA)|(1<<SPR1)|(1<<SPR0); SPSR=(0<<SPI2X); /* Установили MOSI и SCK выход, все остальные вход */ DDR_SPI=(1<<DD_MOSI)|(1<<DD_SCK)|(0<<DD_MISO); }
voidSPI_MasterTransmit(unsignedchar cData){ /* Команда писать данные в нулевой потенциометр */ SPDR=0b00010001; while(!(SPSR & (1<<SPIF))); /* Старт передачи */ SPDR=cData; while(!(SPSR & (1<<SPIF))); }
voidmain(void){ /* Установили кнопки как вход */ DDR_Button=(0<<Button_0)|(1<<DD_PB1)|(1<<DD_SS);
Так. А что это у Вас происходит с выводом SS? Как вход используется, непонятно. Где сброс CS потенциометра перед выходом на передачу данных? Тоже не видать мне..
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Так. А что это у Вас происходит с выводом SS? Как вход используется, непонятно. Где сброс CS потенциометра перед выходом на передачу данных? Тоже не видать мне..
SS МК сконфигурирован на вход и на него подвешено питание +5В.
CS:
Код:
if(PINB.0==1){PORTB.1=0;...
если нажата кнопка, то низкий уровень, иначе высокий
Компания MEAN WELL пополнила ассортимент своей широкой линейки светодиодных драйверов новым семейством XLC для внутреннего освещения. Главное отличие – поддержка широкого спектра проводных и беспроводных технологий диммирования. Новинки представлены в MEANWELL.market моделями с мощностями 25 Вт, 40 Вт и 60 Вт. В линейке есть модели, работающие как в режиме стабилизации тока (СС), так и в режиме стабилизации напряжения (CV) значением 12, 24 и 48 В.
если нажата кнопка, то низкий уровень, иначе высокий
Вижу. Наверное, это я еще очи не разлепил с утра) Честно говоря, я бы эти манипуляции внес в функцию передачи данных. Опустили CS - подняли CS. Впрочем, ладно. Еще я бы попробовал (коль совсем непонятно, почему не работает) для эксперимента реализовать программный SPI. Ибо в принципе работа с MCP41xx/42xx элементарна, "не работать" тут нечему. Кстати говоря, в чем проявляется неработоспособность? У Вас кнопка отрабатывает? По мне, так в Вашей схеме не хватает подтяжки вывода (который к кнопке подключен, PB0) к "земле". Возможно, конечно, в Протеусе и так работать должно. =) Что вообще показывает напряжометр?
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Напряжометр показывает падение напруги. Сопротивление больше - падение больше, меньше - меньше. Поставил чтоб контролировать работу сопротивлялки.
SubDia писал(а):
Кстати говоря, в чем проявляется неработоспособность?
Если зажать кнопку и запустить протеус, то сопротивление меняется (показания вольтметра меняются, в момент отжатия кнопки, разное время с момента пуска - разные показания вольтметра. Тоесть вроде работает). Если запустить с отжатой кнопкой то ничего не меняется. Хотя осциллограф показывает что что-то отправляется.
Может: ================ /* Установили кнопки как вход */ DDR_Button=(0<<Button_0)|(1<<DD_PB1)|(1<<DD_SS);
Напряжометр показывает падение напруги. Сопротивление больше - падение больше, меньше - меньше. Поставил чтоб контролировать работу сопротивлялки.
Да это понятно. Я имел в виду какие конкретно значения он показывает. По идее, после запуска с отжатой кнопкой он должен показать 2,5 В (MCP41010 устанавливает среднее значение (от номинала) сопротивления после сброса).
panya писал(а):
POTR.DD_PB1=1;
Пробуйте.
panya писал(а):
Если зажать кнопку и запустить протеус, то сопротивление меняется (показания вольтметра меняются, в момент отжатия кнопки, разное время с момента пуска - разные показания вольтметра. Тоесть вроде работает). Если запустить с отжатой кнопкой то ничего не меняется.
Потому что при запуске с зажатой кнопкой у Вас в любом случае выполняется условие if(PINB.0==1) А если нет, то на выводе может быть что угодно, вывод-то PB0 в воздухе висит. Притяните его к земле на всякий случай. Приблизительно так.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Всем спасибо. работает. Разрешения толкового не было, сделал разрешение от кнопки, когда вкл. кнопка то подтягивает землю на порт и на CS. И завелся резюк. мяу
Точно. Я всегда настраиваю срабатывание по низкому уровню, схема там чуть друга, вот и накосячил в спешке)
panya писал(а):
работает.
Ну вот и отлично.
_________________ pavel_cydenov: Вобще я праAVRославный человек. Но и про ислARM слышал много хорошего ) MrYuran: Самые ортодоксальные — это PICудеи ) Katz: Не, 51-ники. )
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 12
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете добавлять вложения