1 SYL. Генератор шума. [Электронный ресурс] URL: https://www.syl.ru/article/233580/new_generator-shuma-printsip-deystviya-shema (Дата обращения 16.06.2020).
2 Википедия. Белый шум. [Электронный ресурс] URL: https://ru.wikipedia.org/wiki/Белый_шум (Дата обращения 16.06.2020).
3 Ассоциация радиолюбителей. Глушилки широкополосные [Электронный ресурс] URL: https://vrtp.ru/index.php?showtopic=18778&hl=jammer&st=300 (Дата обращения 17.06.2020).
4 Справочник радиолюбителя. Транзистор ВС846В. [Электронный ресурс] URL: https://www.radiolibrary.ru/reference/transistor-imp/bc846b.html (Дата обращения 17.06.2020).
5 All about circuits. [Электронный ресурс] URL: https://forum.allaboutcircuits.com/threads/how-to-generate-noise-in-proteus.124333/ (Дата обращения 24.06.2020).
6 Практическая электроника. Сумматор на ОУ. [Электронный ресурс] URL: https://www.ruselectronic.com/summator/ (Дата обращения 26.06.2020).
Приложение А – схема электрическая принципиальная.
Приложение Б – перечень элементов.
Приложение В – исходный код программы микроконтроллера.
#define F_CPU 16000000UL
#include <avr/io.h>
#include <avr/interrupt.h>
#include <util/delay.h>
#include <stdlib.h>
#define TIMER_FREQ 1000
|
|
uint32_t _millis = 0;
uint32_t millis(void);
uint64_t micros(void);
ISR(TIMER0_COMP_vect) {
_millis++;
}
void timer0_init(void) {
// режим сброс при совпадении
// предделитель 64
ASSR= 0<<AS0;
TCCR0 = (0<<WGM00) | (0<<COM01) | (0<<COM00) | (1<<WGM01)
| (1<<CS02) | (0<<CS01) | (0<<CS00);
TCNT0 = 0x00;
OCR0 = ((F_CPU / 64) / TIMER_FREQ) - 1;
TIMSK |= (1<<OCIE0);
}
uint32_t millis(void) {
return _millis;
}
uint64_t micros(void) {
return (uint64_t)_millis * 1000 + TCNT0 * 64 / 10;
}
int main(void)
{
int i = 0;
int r;
DDRA = 0b00110101;
PORTA = 0b00001010;
bool vhod;
bool invers;
// глобально запретим прерывания
cli();
timer0_init();
// глобально разрешим прерывания
sei();
while(1)
{
r = rand () % 2;
vhod = PINA&(1 << PA1);
if(vhod == 0) {PORTA |= (1 << PA2);} else {PORTA &= ~(1 << PA2);}
invers = PINA&(1 << PA3);
if(invers == 0) {PORTA |= (1 << PA4);} else {PORTA &= ~(1 << PA4);}
if (r == 1)
{
PORTA |= (1 << PA0);//вкл порт
PORTA &= ~(1 << PA5);
for (i = 1; i < 400; i = i + 1){micros();}
}
else
{
PORTA &= ~(1 << PA0); //выкл порт
PORTA |= (1 << PA5);
for (i = 1; i < 400; i = i + 1){micros();}
}
}
}