может быть так:
if (PORTD.0=1) {PORTB.4=PORTB.4} else {PORTB.4!=PORTB.4};
заранее спасибо
вообще то по CV есть отдельная тема._sanych_ писал(а):помогите пожалуйста. Нужно, что бы по приходу 1 на ногу МК другая выдавала сигнал, а по приходу 0 "молчала".
может быть так:
if (PORTD.0=1) {PORTB.4=PORTB.4} else {PORTB.4!=PORTB.4};
заранее спасибо
Код: Выделить всё
if (PORTD.0=1)Код: Выделить всё
if (PIND.0)Может быть так понятней будет:_sanych_ писал(а): может быть так:
if (PORTD.0=1) {PORTB.4=PORTB.4} else {PORTB.4!=PORTB.4};
Код: Выделить всё
if (PIND.0 == 1) {
PORTB.4 = 1;
}
else {
PORTB.4 = 0;
};а 128 меги будет достаточно для выполнения такой задачи?_sanych_ писал(а):тоесть мне нужно, что бы по приходу на PORTD.0 1 или 0 на PORTB.4 включался или отключался ШИМ соответсятвенно.
А почему нет? Может Вы не поняли вопроса?igor-x писал(а):а 128 меги будет достаточно для выполнения такой задачи?_sanych_ писал(а):тоесть мне нужно, что бы по приходу на PORTD.0 1 или 0 на PORTB.4 включался или отключался ШИМ соответсятвенно.
тогда в качестве ликбеза почитать немного даташиты..._sanych_ писал(а): А почему нет? Может Вы не поняли вопроса?
Сигнал приходит с датчиков холла (это либо 0 либо 1, и в зависимости от этого мне нужно либо включать, либо отключать ШИМ)
тогда может быть отправите на нужную страницу... я не понимаю, почему 128 мега не сможет справиться с такой задачей.igor-x писал(а):тогда в качестве ликбеза почитать немного даташиты..._sanych_ писал(а): А почему нет? Может Вы не поняли вопроса?
Сигнал приходит с датчиков холла (это либо 0 либо 1, и в зависимости от этого мне нужно либо включать, либо отключать ШИМ)
просто задача поставлена некоректно - началось с ликбеза из одной строчки и одного сигнала, а потом оказывается МК должен работать в некой жесткой врЕменной диаграмме._sanych_ писал(а): тогда может быть отправите на нужную страницу... я не понимаю, почему 128 мега не сможет справиться с такой задачей.
Код: Выделить всё
if(PIND.4) TCCR0 |= (1<<COM01); // или как там у вас настраивается
else TCCR0 &= ~((1<<COM01)|(1<<COM00));Код: Выделить всё
char temp_TCCR0 = TCCR0;
while(1){
if(PIND.0){
TCCR0 = temp_TCCR0;
} else {
TCCR0 = 0;
PORTB.4 = 0;
}
}Код: Выделить всё
DDRB.4 = PIND.4;уверены, что при этом состояние на выходе будет однозначно прогнозируемым?a_skr писал(а):не. проще направлением пина управлятьКод: Выделить всё
DDRB.4 = PIND.4;
попробовал так, получается в любом случае на PORTB.4 ШИМа нет хоть 0 приходит на PIND.0 , хоть 1Мастер Ломастер писал(а):очень грубо ваша задача должна решаться примерно так:Код: Выделить всё
char temp_TCCR0 = TCCR0; while(1){ if(PIND.0){ TCCR0 = temp_TCCR0; } else { TCCR0 = 0; PORTB.4 = 0; } }