Список использованных источников

 

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();}

                   }

       }

}


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: