Значит проблема заключается в следующем, написал код под atmega16 на codevisionavr , смысле что поочередно загораются светодиоды , плавно и так-же плавно тухнут, используя программный шим,но код очень не красивый
В начале был такого рода
PORTC.0=1;
wait1();
PORTC.1=1;
wait1();
намного легче было реализовать программный ШИМ, чтобы когда загорались и тухли это происходило плавно, то есть для каждого порта при включении повышал , а при отключении понижал, правда код огромный но понятный, теперь оптимизировал и получил вот такой вариант
for (mask = 0x01; mask; mask <<= 1)
{
PORTC |= mask;
wait1();
}
wait1();
for (mask = 0xF7; mask; mask <<= 1)
{
PORTC &= mask;
wait1();
}
}
теперь не могу понять как сделать тут шим, код получился намного меньше и красивее но.. ) Пожалуйста помогите советом. Спасибо
И снова ШИМ, помогите новичку.
- Реклама
Re: И снова ШИМ, помогите новичку.
ну или подскажите другой вариант, смысл в том чтоб плавно загорался первый светодиод, на ним второй, но первый горел, затем трети, первый и второй горели .....
Re: И снова ШИМ, помогите новичку.
Вопрос исчерпан, расскажу как сделал, может пригодится кому .
PORTC |= mask; заменил на led_on(mask);
Затем создал функцию led_on с ШИМ и все работает
PORTC |= mask; заменил на led_on(mask);
Затем создал функцию led_on с ШИМ и все работает
