электронщики несут не меньше.bad2cat писал(а):сколько бреда несут в массы программисты, возомнив себя богами?
как и менеджеры, врачи, продавцы и автомеханики.
"где у нас Бог? в 6-й палате, где раньше Наполеон был".
электронщики несут не меньше.bad2cat писал(а):сколько бреда несут в массы программисты, возомнив себя богами?
Ваша точка зрения ведёт к потокам мигрантов на мою землю. Вы ТВ смотрите? Про Европу сегодня?ARV писал(а):электронщики несут не меньше. как и менеджеры, врачи, продавцы и автомеханики.bad2cat писал(а):сколько бреда несут в массы программисты, возомнив себя богами?
как все запущеноbad2cat писал(а):Есть программисты - это изначально неудачники по жизни, сделавшие свой выбор в сферу, где им никто не сопротивляется и не мешает - только они наедине с проблемой (они же становятся веганами, Антиалкоголиками, наркоманами (из-за обилия денег в 10-е), антифа и прочий бред - сталкивался с этими проявлениями неоднократно, и ни одного железячника - это же не странно - это закономерность развития неуверенных в себе людей.)
сами-то вы буйный или тихопомешанный?bad2cat писал(а):Этож клиника бешенных врачей-психиатров.
А вы себя врачом считаете, или, как обычно, "вы тут не при чём"?ARV писал(а):сами-то вы буйный или тихопомешанный?bad2cat писал(а):Этож клиника бешенных врачей-психиатров.
Код: Выделить всё
15| pulse: boolean := false;
106| when 81..110 => pulse := not pulse; if pulse then R := 32; else R := 0; end if; G := 0; B := 0; PINB_Bits(BEEP_pin) := true;
Говорю диапазоны пересекаются. Надо или тот или другой сократить. Но если сократить 59..90, то красный не дойдёт до полного свечения.when 59..90 =>
when 81..110 =>
Ничего странного. Обычная Ада, образца 1995-го года.ARV писал(а):а что это за язык у вас какой-то странный?
Код: Выделить всё
with
AVR,
AVR.MCU,
AVR.Wait,
AVR.Interrupts,
Interfaces,
One_Wire,
interrupt_handler;
use AVR, AVR.MCU,Interfaces, interrupt_handler;
procedure teapot is
low_byte, high_byte: Unsigned_8 := 0;
t: Unsigned_8 := 1;
procedure Wait_ms is
new AVR.Wait.Generic_Busy_Wait_Milliseconds(Crystal_hertz => SYS_CLK);
state: Bit_Number := 7;
beep_mode: boolean := false;
procedure switch_color(e: Bit_Number) is
begin
if e=state then Wait_ms(800); return; end if;
for i in 0..255 loop
for j in 1..255 loop
PORTB_Bits(state) := (j>i);
PORTB_Bits(e) := (j<=i);
end loop;
if beep_mode then
PINB_Bits(BEEP_pin) := (i mod 64)=0;
else beep := false;
end if;
end loop;
state := e;
red := red_pin = state;
blue := blue_pin = state;
green := green_pin = state;
end switch_color;
error_count: Unsigned_8 := 0;
pulse: boolean := false;
CLKPR_change: constant Unsigned_8 := 2#1000_0000#;
CLKPR_1: constant Unsigned_8 := 0;
begin
RED := low;
GREEN := low;
BLUE := low;
BEEP := low;
DDRB_Bits := (0..3 => DD_Output, others => DD_Input);
TCCR0B := 2;
TIMSK0_Bits(TOIE0_Bit) := true;
CLKPR := CLKPR_change;
CLKPR := CLKPR_1;
BEEP := true;
wait_ms(700);
BEEP := false;
wait_ms(700);
BEEP := true;
wait_ms(700);
BEEP := false;
AVR.Interrupts.Enable;
loop
if One_wire.Reset then
One_Wire.Send_command(16#CC#);
One_Wire.Send_command(16#44#);
error_count := 0;
else
error_count := error_count + 1;
end if;
Wait_ms(800);
if One_wire.Reset then
One_Wire.Send_command(16#CC#);
One_Wire.Send_command(16#BE#);
low_byte := One_wire.Get;
high_byte := One_wire.Get;
error_count := 0;
else
error_count := error_count + 1;
end if;
high_byte := shift_left(high_byte,4) and 2#0111_0000#;
low_byte := shift_right(low_byte,4) and 2#0000_1111#;
t := high_byte or low_byte;
case t is
when 1..10 => R := 16; G := 0; B := 16; BEEP := false;
when 11..26 => R := 26 - t; G := 0; B := 16 + (t-10); BEEP := false;
when 27..58 => R := 0; G := t-26; B := 32 - (t-26); BEEP := false;
when 59..90 => R := t-58; G := 32 - (t-58); B := 0; BEEP := false;
when 91..110 => pulse := not pulse; if pulse then R := 32; else R := 0; end if; G := 0; B := 0; BEEP := pulse;
when others => error_count := error_count + 1;
end case;
if error_count>2 then R := 32; G := 32; B := 32; BEEP := true; end if;
end loop;
end teapot;