anatoliyrnd » 20 сен 2011, 23:18
Люди Вы читаете внимательно пост, в картинке указанны разные яркости для разных ситуаций, кто реализует это на 555 с минимальным обвесом?
Правильно пора переходить на микроконтроллеры.
Воспользуйся программой CodeVisionAVR, там есть помощник по конфигурации AVR. Attiny13a самый маленький микроконтроллер, с двумя ШИМ, (5 портами + 1 если рессет отключить)
Вот примерная инициализация портов
#include <tiny13a.h>
// Declare your global variables here
void main(void)
{
// Declare your local variables here
// Crystal Oscillator division factor: 1
#pragma optsize-
CLKPR=0x80;
CLKPR=0x00;
#ifdef _OPTIMIZE_SIZE_
#pragma optsize+
#endif
// Input/Output Ports initialization
// Port B initialization
// Func5=In Func4=In Func3=In Func2=In Func1=Out Func0=Out
// State5=T State4=P State3=P State2=P State1=0 State0=0
PORTB=0x1C;
DDRB=0x03;
// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: 575,000 kHz
// Mode: Phase correct PWM top=0xFF
// OC0A output: Non-Inverted PWM
// OC0B output: Non-Inverted PWM
TCCR0A=0xA1;
TCCR0B=0x02;
TCNT0=0x00;
OCR0A=0x00;
OCR0B=0x00;
// External Interrupt(s) initialization
// INT0: Off
// Interrupt on any change on pins PCINT0-5: Off
GIMSK=0x00;
MCUCR=0x00;
// Timer/Counter 0 Interrupt(s) initialization
TIMSK0=0x00;
// Analog Comparator initialization
// Analog Comparator: Off
ACSR=0x80;
ADCSRB=0x00;
DIDR0=0x00;
// ADC initialization
// ADC disabled
ADCSRA=0x00;
while (1)
{
// Place your code here здесь в бесконечном цикле проверяешь разные условия и заносишь в регистр OCR0A ( первый шим) или OCR0B необходимые значения - 0xFF - 100% скважность (если не включить инверсию)
}
}
Есть хорошая книга по этой программе на русском языке (к сожалению не помню точного названия) но в нете легко найти, по ней можешь написать сам прошивку.