Continuing Minimalist QRSS
421 words | Posted on June 6th, 2010
Scott was 24.70 years old when he wrote this!
Filed under: General
I’m still working on this project, and although progress is slow I’m learning a lot and the circuit is getting better with time. I’m still not yet ready to post the schematics, but you can get an idea of what’s going on from the picture. It can handle 255 levels of frequency shift and has the ability to turn the tone on and off. 6 capacitors, 3 resistors, 4 transistors, a single inductor, and a micro-controller. Boom!

… and yeah, that’s a double helix
UPDATE I spotted myself on W4BHK’s Grabber about 300 miles away…

#include <avr /io.h>
#include <util /delay.h>
char dotlen=5; // ultimately the speeed of transmission
char call[]={0,1,1,1,2,0,2,1,1,0}; // 0 for space, 1 for dit, 2 for dah
void setfor(char freq, char ticks){
OCR1A=freq;
while (ticks>0){
sleep();
ticks--;
}
}
void sleep(){
for (char i=0;i<dotlen ;i++){
_delay_loop_2(65000);
}
}
void slideto(char freq, char ticks){
freq=freq+30;
char step=1;
if (OCR1A>freq){step=-1;}
while (OCR1A!=freq){
OCR1A+=step;
setfor(OCR1A, 1);
}
setfor(freq, ticks);
}
void DNA(){
char a[]={4,5,5,6,6,6,7,7,7,7,8,8,8,8,8,7,7,7,7,6,6,6,5,5,4,3,3,2,2,2,1,1,1,1,0,0,0,0,0,1,1,1,1,2,2,2,3,3};
char b[]={1,1,1,1,2,2,2,3,3,4,5,5,6,6,6,7,7,7,7,8,8,8,8,8,7,7,7,7,6,6,6,5,5,4,3,3,2,2,2,1,1,1,1,0,0,0,0,0};
for (char i=0;i<sizeof (a);i++){
//slideto(a[i]*4,2);
//slideto(b[i]*4,2);
setfor(a[i]*2+5, 10);
setfor(b[i]*2+5, 10);
}
}
void ID(){
for (char i=0;i<sizeof(call);i++){
setfor(10,50);
if (call[i]==0){setfor(10,100);}
if (call[i]==1){setfor(15,100);}
if (call[i]==2){setfor(15,250);}
setfor(10,50);
}
}
void ID2(){
for (char i=0;i<sizeof(call);i++){
if (call[i]==0){ampOFF();setfor(10,50);}
if (call[i]==1){ampON();setfor(10,100);}
if (call[i]==2){ampON();setfor(13,100);}
ampOFF();setfor(OCR1A,30);
}
ampON();
}
void ampON(){PORTA|=(1<<PA7);PORTA|=(1<<PA0);PORTA&=~(1<<PA1);_delay_loop_2(10000);}
void ampOFF(){PORTA&=~(1<<PA7);PORTA|=(1<<PA1);PORTA&=~(1<<PA0);_delay_loop_2(10000);}
int main(void)
{
DDRA = 255;
OCR1A = 75;TCCR1A = 0x81;TCCR1B = 1;
while (1){
ID2();
ID();
for (char i=0;i<3;i++){
DNA();
}
}
}
This entry was posted on Sunday, June 6th, 2010 at 7:15 pmand is filed under General. You can follow any responses to this entry through the RSS 2.0 feed. You can skip to the end and leave a response. Pinging is currently not allowed.
One Response to “Continuing Minimalist QRSS”
| Maxi wrote the following at 10:17:58 AM on June 8th, 2010 |
|
I’m very interested in your project. I can’t wait you finish it to try it. Thanks for posting! |
Leave a Reply
copyright
© 2006 swharden@gmail.com
