SKETCH uTX OM



/*This work is licensed under the Creative Commons Attribution-ShareAlike 4.0 International License. To view a copy of this license, visit http://creativecommons.org/licenses/by-sa/4.0/.*/


// OCR2 values for available Transmit frequencies: OCR2A/B = 8000/Ft[Khz] - 1

#define F_8MHZ 0

#define F_4MHZ 1

#define F_2666 2

#define F_2000 3

#define F_1600 4

#define F_1333 5

#define F_1143 6

#define F_1000 7

#define F_880 8

#define F_800 9

#define F_727 10

#define F_666 11

#define F_615 12

#define F_571 13

#define F_533 14

#define F_500 15


#define FRQ F_1600 //Replace OCR2 value for frequency here, if necessary


#define ANTENNA_1 PD3 //Arduino Nano/Uno Pin D3

#define ANTENNA_2 PB3 //Arduino Nano/Uno Pin D11



void setup() {

//Timer 2: Carrier Frequency generation

TCCR2A = bit(COM2A0) + bit(COM2B0); // Toggle OC0A (Pin 11) and OC0B (Pin 3) on Compare Match

bitSet(TCCR2A, WGM21); // CTC Mode

TCCR2B = bit(CS20); // No clock Prescaling

OCR2A = FRQ;

OCR2B = FRQ;

bitSet(TCCR2B, FOC2B);  // Force Output Compare B; Toggle inverted

//Timer 1: PWM

pinMode(9, OUTPUT);

TCCR1A =  bit(WGM11) + bit(WGM10); //Fast PWM, 10 Bit

TCCR1B = bit(WGM12) + bit(CS10); // No Prescaling

  TIMSK1 = bit(OCIE1A) + bit(TOIE1);// Output Compare A Match and overflow Interrupt Enable

//TCCR1A += bit(COM1A0) + bit(COM1A1); //Toggle Pin 9 on compare match


//ADC Settings

ADMUX = bit(REFS1) + bit(REFS0); //Reference internal 1.1V

ADCSRA = bit(ADEN) + bit(ADSC) + bit(ADATE); //Auto Trigger enable, free running

ADCSRA += bit(ADPS2) + bit(ADPS1); //Divide by 64 -> 18.5k Sample rate

DIDR0 = bit(ADC0D);

}


/* Overflow Interrupt*/

ISR(TIMER1_OVF_vect) {

uint16_t adc = ADC;

OCR1A = adc;

bitSet(DDRD, ANTENNA_1); // timer 2 outputs on

bitSet(DDRB, ANTENNA_2);

}


/* Output Compare A Match Interrupt */

ISR(TIMER1_COMPA_vect) {

bitClear(DDRD, ANTENNA_1); // timer 2 outputs off

bitClear(DDRB, ANTENNA_2);

}


void loop() 

{

}






                                   HOME-MADE                                                                                                            Home page by  IK1LBW