1 mHz çözünürlüklü kare dalga nasıl üretilir?

Başlatan magnetron, 11 Nisan 2020, 20:04:42

z

En baba frekans sentezleyiciyi dahi kullansan piezonun rezonans frekansi, yapilan ise gore degisecektir. Cunku rezonans frekansini piezonun  elektrik parametrelerinden ziyade piezonun maruz kaldigi mekanik belirleyecektir.

Osilatoru analog sinyal geri beslemesi ile yaparsan osilator her daim piezonun rezonans frekansinda titresir.

Piezonun bostayken titrestigi frekans ile yukteyken titrestigi frekans illaki farklidir. Bu yuzden geri besleme sinyalini pizodan almak zorundasin.

MCU ile osc genligini falan dolayli yollardan ayarlasin.
Bana e^st de diyebilirsiniz.   www.cncdesigner.com

ipek

Fractional Divider buldum bir tane derledim sıfır hata,fakat proteus ADC seçilmedi uyarısı veriyor..dosya forumdan paylaşılamıyor,Code tag yollayacağım umarım fikir verir.
Hitech C

2Phase.C

/*********************************************
2 PHASE OSCILATOR 
**********************************************/
#include <pic.h>
#include "delay.h"
__CONFIG(UNPROTECT & BOREN & MCLRDIS & PWRTEN & WDTDIS & EC);
__IDLOC(0100);
unsigned char cnt = 0;
volatile unsigned char T0Lmt = 0; // timer0 Limit
volatile unsigned char T0PS = 0; // timer0 PriScaler
volatile unsigned char VR; // VR Value
volatile unsigned char tmp1; // int temporary
volatile unsigned char tmp2; // main temporary
volatile unsigned char tmr = (256 - 200); // 
unsigned char PTN = 0; // 
// 
const unsigned char P[4] = { 0x00, 0x02, 0x06, 0x04};
const unsigned char TC[256][2] ={ //
{ 8, 244}, // 0: 0.1Hz 2500msec 2499.4Hz 0.00%
{ 7, 244}, // 1: 0.2Hz 1250msec 1.250085s +0.00%
{ 7, 163}, // 2: 0.3Hz 833msec 0.299Hz -0.21%
{ 6, 244}, // 3: 0.4Hz 625msec 0.3997Hz -0.01%
{ 6, 195}, // 4: 0.5Hz 500msec 0.5002Hz +0.03%
{ 6, 163}, // 5: 0.6Hz 417msec 0.5983Hz -0.28%
{ 6, 140}, // 6: 0.7Hz 357msec 0.6966Hz -0.48%
{ 5, 244}, // 7: 0.8Hz 312.5msec 0.7984hZ -0.21%
{ 5, 217}, // 8: 0.9Hz 277msec 0.8977Hz -0.26%
{ 5, 195}, // 9: 1.0Hz 250msec 0.9990Hz -0.10%
{ 5, 178}, // 10: 1.1Hz 227msec 1.0944Hz -0.51%
{ 5, 162}, // 11: 1.2Hz 208.3msec 1.2024Hz +0.21%
{ 5, 150}, // 12: 1.3Hz 192.3msec 1.2987Hz -0.10%
{ 5, 139}, // 13: 1.4Hz 178.6msec 1.4014Hz +0.10%
{ 5, 130}, // 14: 1.5Hz 166.6msec 1.4985Hz -0.10%
{ 4, 243}, // 15: 1.6Hz 156.25msec1.5993Hz -0.04%
{ 4, 229}, // 16: 1.7Hz 147.1msec 1.6971Hz -0.17%
{ 4, 216}, // 17: 1.8Hz 138.8msec 1.7952Hz -0.26%
{ 4, 205}, // 18: 1.9Hz 131.6msec 1.8958Hz -0.22%
{ 4, 194}, // 19: 2.0Hz 125.0msec 2.0033Hz +0.16%
{ 4, 185}, // 20: 2.1Hz 119.0msec 2.1007Hz +0.04%
{ 4, 177}, // 21: 2.2Hz 113.6msec 2.1957Hz -0.20%
{ 4, 169}, // 22: 2.3Hz 108.7msec 2.2996Hz -0.02%
{ 4, 162}, // 23: 2.4Hz 104.2msec 2.3990Hz -0.04%
{ 4, 155}, // 24: 2.5Hz 100msec 2.5073Hz +0.29%
{ 4, 150}, // 25: 2.6Hz 96.15msec 2.5909Hz -0.35%
{ 4, 144}, // 26: 2.7Hz 92.59msec 2.6989Hz -0.04%
{ 4, 139}, // 27: 2.8Hz 89.29ms 2.7959Hz -0.14%
{ 4, 134}, // 28: 2.9Hz 86.20ms 2.9003Hz +0.01%
{ 4, 130}, // 29: 3.0Hz 83.33ms 2.9895Hz -0.35%
{ 3, 250}, // 30: 3.1Hz 80.65ms 3.0931Hz -0.22%
{ 3, 242}, // 31: 3.2Hz 78.125ms 3.1954Hz -0.15%
{ 3, 235}, // 32: 3.3Hz 75.76ms 3.2905Hz -0.29%
{ 3, 228}, // 33: 3.4Hz 73.53ms 3.3916Hz -0.25%
{ 3, 221}, // 34: 3.5Hz 71.43ms 3.4990Hz -0.03%
{ 3, 215}, // 35: 3.6Hz 69.44ms 3.5966Hz -0.09%
{ 3, 209}, // 36: 3.7Hz 67.57ms 3.7000Hz -0.00%
{ 3, 204}, // 37: 3.8Hz 65.79ms 3.7906Hz -0.25%
{ 3, 198}, // 38: 3.9Hz 64.10ms 3.9054Hz +0.14%
{ 3, 193}, // 39: 4.0Hz 62.50ms 4.0066Hz +0.17%
{ 3, 189}, // 40: 4.1Hz 60.98ms 4.0914Hz -0.21%
{ 3, 184}, // 41: 4.2Hz 59.52ms 4.2026Hz +0.06%
{ 3, 180}, // 42: 4.3Hz 58.14ms 4.2960Hz -0.09%
{ 3, 176}, // 43: 4.4Hz 56.82ms 4.3936Hz -0.15%
{ 3, 172}, // 44: 4.5Hz 55.56ms 4.4958Hz -0.01%
{ 3, 168}, // 45: 4.6Hz 54.35ms 4.6028Hz +0.06%
{ 3, 165}, // 46: 4.7Hz 53.19ms 4.6865Hz -0.29%
{ 3, 161}, // 47: 4.8Hz 52.08ms 4.8029Hz +0.06%
{ 3, 158}, // 48: 4.9Hz 51.02ms 4.8941Hz -0.12%
{ 3, 155}, // 49: 5.0Hz 50.00ms 4.9889Hz -0.22%
{ 3, 152}, // 50: 5.1Hz 49.02ms 5.0873Hz -0.25%
{ 3, 149}, // 51: 5.2Hz 48.08ms 5.1898Hz -0.20%
{ 3, 146}, // 52: 5.3Hz 47.17ms 5.2964Hz -0.07%
{ 3, 143}, // 53: 5.4Hz 46.30ms 5.4075Hz +0.14%
{ 3, 141}, // 54: 5.5Hz 45.45ms 5.4842Hz -0.29%
{ 3, 138}, // 55: 5.6Hz 44.64ms 5.6034Hz +0.06%
{ 3, 136}, // 56: 5.7Hz 43.86ms 5.6858Hz -0.25%
{ 3, 133}, // 57: 5.8Hz 43.10ms 5.8141Hz +0.24%
{ 3, 131}, // 58: 5.9Hz 42.37ms 5.9029Hz +0.05%
{ 3, 129}, // 59: 6.0Hz 41.67ms 5.9944Hz -0.09%
{ 3, 127}, // 60: 6.1Hz 40.98ms 6.0888Hz -0.18%
{ 2, 247}, // 61: 6.2Hz 40.32ms 6.1943Hz -0.09%
{ 2, 243}, // 62: 6.3Hz 39.68ms 6.2962Hz -0.06%
{ 2, 239}, // 63: 6.4Hz 39.06ms 6.4016Hz +0.02%
{ 2, 235}, // 64: 6.5Hz 38.46ms 6.5106Hz +0.16%
{ 2, 232}, // 65: 6.6Hz 37.88ms 6.5947Hz -0.08%
{ 2, 228}, // 66: 6.7Hz 37.31ms 6.7104Hz +0.16%
{ 2, 225}, // 67: 6.8Hz 36.76ms 6.7999Hz -0.00%
{ 2, 222}, // 68: 6.9Hz 36.23ms 6.8918Hz -0.12%
{ 2, 219}, // 69: 7.0Hz 35.71ms 6.9921Hz -0.11%
{ 2, 216}, // 70: 7.1Hz 35.21ms 7.0832Hz -0.24%
{ 2, 212}, // 71: 7.2Hz 34.72ms 7.2169Hz +0.23%
{ 2, 210}, // 72: 7.3Hz 34.25ms 7.2856Hz -0.20%
{ 2, 207}, // 73: 7.4Hz 33.78ms 7.3912Hz -0.12%
{ 2, 204}, // 74: 7.5Hz 33.33ms 7.4999Hz -0.00%
{ 2, 201}, // 75: 7.6Hz 32.89ms 7.6118Hz +0.16%
{ 2, 199}, // 76: 7.7Hz 32.47ms 7.6883Hz -0.15%
{ 2, 196} , // 77: 7.8Hz 32.05ms 7.8060Hz +0.08%
{ 2, 194} , // 78: 7.9Hz 31.65ms 7.8865Hz -0.17%
{ 2, 191}, // 79: 8.0Hz 31.25ms 8.0104Hz +0.13%
{ 2, 189} , // 80: 8.1Hz 30.86ms 8.0951Hz -0.06%
{ 2, 187} , // 81: 8.2Hz 30.49ms 8.1817Hz -0.22%
{ 2, 184} , // 82: 8.3Hz 30.12ms 8.3151Hz +0.18%
{ 2, 182} , // 83: 8.4Hz 29.76ms 8.4065Hz +0.08%
{ 2, 180} , // 84: 8.5Hz 29.41ms 8.4999Hz -0.00%
{ 2, 178} , // 85: 8.6Hz 29.07ms 8.5954Hz -0.05%
{ 2, 176} , // 86: 8.7Hz 28.74ms 8.6931Hz -0.08%
{ 2, 174} , // 87: 8.8Hz 28.41ms 8.7930Hz -0.08%
{ 2, 172} , // 88: 8.9Hz 28.09ms 8.8952Hz -0.05%
{ 2, 170} , // 89: 9.0Hz 27.78ms 8.9999Hz -0.00%
{ 2, 168} , // 90: 9.1Hz 27.47ms 9.1070Hz +0.08%
{ 2, 166} , // 91: 9.2Hz 27.17ms 9.2167Hz +0.18%
{ 2, 165} , // 92: 9.3Hz 26.88ms 9.2726Hz -0.29%
{ 2, 163} , // 93: 9.4Hz 26.60ms 9.3864Hz -0.15%
{ 2, 161} , // 94: 9.5Hz 26.32ms 9.5030Hz +0.03%
{ 2, 159} , // 95: 9.6Hz 26.04ms 9.6225Hz +0.23%
{ 2, 158} , // 96: 9.7Hz 25.77ms 9.6834Hz -0.17%
{ 2, 156} , // 97: 9.8Hz 25.51ms 9.8075Hz +0.08%
{ 2, 155} , // 98: 9.9Hz 25.25ms 9.8708Hz -0.29%
{ 2, 153} , // 99:10.0Hz 25.00ms 9.9998Hz -0.00%
{ 2, 146} , // 100:10.5Hz 23.81ms 10.479Hz +0.20%
{ 2, 139} , // 101:11.0Hz 22.73ms 11.007Hz +0.06%
{ 2, 133} , // 102:11.5Hz 21.74ms 11.504Hz +0.03%
{ 2, 127} , // 103:12.0Hz 20.83ms 12.047Hz +0.39%
{ 2, 122} , // 104:12.5Hz 20.00ms 12.541Hz +0.32%
{ 1, 231} , // 105:13.0Hz 19.23ms 12.977Hz -0.18%
{ 1, 222} , // 106:13.5Hz 18.52ms 13.503Hz +0.02%
{ 1, 214} , // 107:14.0Hz 17.86ms 14.008Hz +0.06%
{ 1, 207} , // 108:14.5Hz 17.24ms 14.482Hz -0.13%
{ 1, 200} , // 109:15.0Hz 16.67ms 14.989Hz -0.08%
{ 1, 193} , // 110:15.5Hz 16.13ms 15.532Hz +0.21%
{ 1, 187} , // 111:16.0Hz 15.63ms 16.030Hz +0.19%
{ 1, 182} , // 112:16.5Hz 15.15ms 16.471Hz -0.18%
{ 1, 176} , // 113:17.0Hz 14.71ms 17.033Hz +0.19%
{ 1, 171} , // 114:17.5Hz 14.29ms 17.530Hz +0.17%
{ 1, 167} , // 115:18.0Hz 13.89ms 17.950Hz -0.28%
{ 1, 162} , // 116:18.5Hz 13.51ms 18.504Hz +0.02%
{ 1, 158} , // 117:19.0Hz 13.16ms 18.973Hz -0.14%
{ 1, 154} , // 118:19.5Hz 12.82ms 19.466Hz -0.18%
{ 1, 150} , // 119:20.0Hz 12.50ms 19.985Hz -0.08%
{ 3, 143} , // 120: 21 Hz 11.90ms 20.963Hz -0.18%
{ 3, 136} , // 121: 22 Hz 11.36ms 22.067Hz +0.31%
{ 3, 130} , // 122: 23 Hz 10.87ms 23.086Hz +0.37%
{ 2, 240} , // 123: 24 Hz 10.42ms 24.023Hz +0.10%
{ 2, 231} , // 124: 25 Hz 10.00ms 24.959Hz -0.16%
{ 2, 222} , // 125: 26 Hz 9.615ms 25.998Hz -0.11%
{ 2, 213} , // 126: 27 Hz 9.259ms 27.069Hz +0.25%
{ 2, 206}, // 127: 28 Hz 8.929ms 27.988Hz -0.04%
{ 2, 199}, // 128: 29 Hz 8.621ms 28.973Hz -0.09%
{ 2, 192}, // 129: 30 Hz 8.333ms 30.029Hz +0.10%
{ 2, 186} , // 130: 31 Hz 8.065ms 30.997Hz -0.01%
{ 2, 180} , // 131: 32 Hz 7.813ms 32.031Hz +0.10%
{ 2, 175} , // 132: 33 Hz 7.576ms 32.946Hz -0.16%
{ 2, 170} , // 133: 34 Hz 7.353ms 33.915Hz -0.25%
{ 2, 165} , // 134: 35 Hz 7.143ms 34.943Hz -0.16%
{ 2, 160} , // 135: 36 Hz 6.444ms 36.034Hz +0.10%
{ 2, 156} , // 136: 37 Hz 6.757ms 36.958Hz -0.11%
{ 2, 152}, // 137: 38 Hz 6.579ms 37.932Hz -0.18%
{ 2, 148}, // 138: 39 Hz 6.410ms 38.957Hz -0.11%
{ 2, 144}, // 139: 40 Hz 6.250ms 40.041Hz +0.10%
{ 2, 141} , // 140: 41 Hz 6.098ms 40.890Hz -0.27%
{ 1, 255} , // 141: 42 Hz 5.952ms 42.014Hz +0.03%
{ 1, 249} , // 142: 43 Hz 5.814ms 43.026Hz +0.06%
{ 1, 243} , // 143: 44 Hz 5.682ms 44.089Hz +0.20%
{ 1, 238} , // 144: 45 Hz 5.556ms 45.014Hz +0.03%
{ 1, 233} , // 145: 46 Hz 5.435ms 45.976Hz -0.05%
{ 1, 228} , // 146: 47 Hz 5.319ms 46.989Hz -0.02%
{ 1, 223}, // 147: 48 Hz 5.208ms 48.046Hz +0.09%
{ 1, 219}, // 148: 49 Hz 5.102ms 48.920Hz -0.16%
{ 1, 214}, // 149: 50 Hz 5.000ms 50.062Hz +0.12%
{ 1, 210} , // 150: 51 Hz 4.902ms 51.016Hz +0.03%
{ 1, 206} , // 151: 52 Hz 4.808ms 52.001Hz +0.00%
{ 1, 202} , // 152: 53 Hz 4.717ms 53.036Hz +0.07%
{ 1, 198} , // 153: 54 Hz 4.630ms 54.108Hz +0.20%
{ 1, 195} , // 154: 55 Hz 4.545ms 54.940Hz -0.11%
{ 1, 191} , // 155: 56 Hz 4.464ms 56.084Hz +0.15%
{ 1, 188} , // 156: 57 Hz 4.386ms 56.979Hz -0.04%
{ 1, 185}, // 157: 58 Hz 4.310ms 57.903Hz -0.17%
{ 1, 182}, // 158: 59 Hz 4.237ms 58.857Hz -0.24%
{ 1, 179}, // 159: 60 Hz 4.167ms 59.843Hz -0.26%
{ 1, 175} , // 160: 61 Hz 4.098ms 60.863Hz -0.22%
{ 1, 173} , // 161: 62 Hz 4.032ms 61.918Hz -0.13%
{ 1, 170} , // 162: 63 Hz 3.968ms 63.010Hz +0.02%
{ 1, 167} , // 163: 64 Hz 3.906ms 64.142Hz +0.22%
{ 1, 165} , // 164: 65 Hz 3.846ms 64.928Hz -0.11%
{ 1, 162} , // 165: 66 Hz 3.788ms 66.131Hz +0.20%
{ 1, 160} , // 166: 67 Hz 3.731ms 66.956Hz -0.07%
{ 1, 158}, // 167: 68 Hz 3.676ms 67.795Hz -0.30%
{ 1, 155}, // 168: 69 Hz 3.623ms 69.107Hz +0.15%
{ 1, 153}, // 169: 70 Hz 3.571ms 70.020Hz +0.03%
{ 1, 151} , // 170: 71 Hz 3.521ms 70.946Hz -0.08%
{ 1, 149} , // 171: 72 Hz 3.472ms 71.889Hz -0.15%
{ 1, 147} , // 172: 73 Hz 3.425ms 72.878Hz -0.17%
{ 1, 145} , // 173: 74 Hz 3.378ms 73.881Hz -0.16%
{ 1, 143} , // 174: 75 Hz 3.333ms 74.904Hz -0.13%
{ 1, 141} , // 175: 76 Hz 3.289ms 75.979Hz -0.03%
{ 1, 139} , // 176: 77 Hz 3.247ms 77.070Hz +0.09%
{ 1, 137}, // 177: 78 Hz 3.205ms 78.184Hz +0.24%
{ 1, 136}, // 178: 79 Hz 3.165ms 78.770Hz -0.29%
{ 1, 134}, // 179: 80 Hz 3.125ms 79.933Hz -0.08%
{ 1, 132} , // 180: 81 Hz 3.086ms 81.158Hz +0.20%
{ 0, 231} , // 181: 82 Hz 3.049ms 81.978Hz -0.03%
{ 1, 129} , // 182: 83 Hz 3.012ms 83.045Hz +0.05%
{ 0, 225} , // 183: 84 Hz 2.976ms 84.164Hz +0.19%
{ 0, 223} , // 184: 85 Hz 2.941ms 84.918Hz -0.10%
{ 0, 220} , // 185: 86 Hz 2.907ms 86.082Hz +0.10%
{ 0, 218} , // 186: 87 Hz 2.874ms 86.872Hz -0.15%
{ 0, 215}, // 187: 88 Hz 2.841ms 88.084Hz +0.10%
{ 0, 213}, // 188: 89 Hz 2.809ms 88.911Hz -0.10%
{ 0, 210}, // 189: 90 Hz 2.778ms 90.181Hz +0.20%
{ 0, 208} , // 190: 91 Hz 2.747ms 91.042Hz +0.05%
{ 0, 206} , // 191: 92 Hz 2.717ms 91.932Hz -0.07%
{ 0, 204} , // 192: 93 Hz 2.688ms 92.833Hz -0.18%
{ 0, 202} , // 193: 94 Hz 2.660ms 93.752Hz -0.26%
{ 0, 199} , // 194: 95 Hz 2.632ms 95.166Hz +0.17%
{ 0, 197} , // 195: 96 Hz 2.604ms 96.132Hz +0.14%
{ 0, 195} , // 196: 97 Hz 2.577ms 97.118Hz +0.12%
{ 0, 193}, // 197: 98 Hz 2.551ms 98.124Hz +0.13%
{ 0, 191}, // 198: 99 Hz 2.525ms 99.151Hz +0.15%
{ 0, 190}, // 199:99.5Hz 2.513ms 99.665Hz +0.17%
{ 0, 189} , // 200: 100 Hz 2.5000ms 2.4% 96.2Hz
{ 0, 180} , // 201: 105 Hz 2.3810ms 1.7% 120.3Hz
{ 0, 172} , // 202: 110 Hz 2.2727ms 3.1% 137.4Hz
{ 0, 165} , // 203: 115 Hz 2.1739ms 2.4% 192.4Hz
{ 0, 158} , // 204: 120 Hz 2.0833ms 7.9% 320.7Hz
{ 0, 152} , // 205: 125 Hz 2.0000ms 2.5% 481.1Hz
{ 0, 146} , // 206: 130 Hz 1.9231ms 2.5% 481.1Hz
{ 0, 140}, // 207: 135 Hz 1.8519ms 2.5% 481.1Hz
{ 0, 135}, // 208: 140 Hz 1.7857ms 2.5% 481.1Hz
{ 0, 131}, // 209: 145 Hz 1.7241ms 2.5% 481.1Hz
{ 0, 126} , // 210: 150 Hz 1.6667ms 150.3Hz +0.21%
{ 0, 122} , // 211: 155 Hz 1.6129ms 155.2Hz +0.15%
{ 0, 118} , // 212: 160 Hz 1.5625ms 160.5Hz +0.31%
{ 0, 115} , // 213: 165 Hz 1.5152ms 164.7Hz -0.19%
{ 0, 111} , // 214: 170 Hz 1.4706ms 170.6Hz +0.36%
{ 0, 108} , // 215: 175 Hz 1.4286ms 175.4Hz +0.21%
{ 0, 105} , // 216: 180 Hz 1.3889ms 180.4Hz +0.21%
{ 0, 102}, // 217: 185 Hz 1.3514ms 185.7Hz +0.37%
{ 0, 100}, // 218: 190 Hz 1.3158ms 189.4Hz -0.32%
{ 0, 97}, // 219: 195 Hz 1.2821ms 195.3Hz +0.13%
{ 0, 95} , // 220: 200 Hz 1.2500ms 199.4Hz -0.32%
{ 0, 92} , // 221: 205 Hz 1.2195ms 205.9Hz +0.42%
{ 0, 90} , // 222: 210 Hz 1.1905ms 210.4Hz +0.20%
{ 0, 88} , // 223: 215 Hz 1.1628ms 215.2Hz +0.10%
{ 0, 86} , // 224: 220 Hz 1.1364ms 220.2Hz +0.10%
{ 0, 84} , // 225: 225 Hz 1.1111ms 225.5Hz +0.20%
{ 0, 82} , // 226: 230 Hz 1.0870ms 231.0Hz +0.42%
{ 0, 81}, // 227: 235 Hz 1.0638ms 233.8Hz -0.51%
{ 0, 79}, // 228: 240 Hz 1.0417ms 239.7Hz -0.11%
{ 0, 77}, // 229: 245 Hz 1.0204ms 246.0Hz +0.39%
{ 0, 76} , // 230: 250 Hz 1.0000ms 249.2Hz -0.32%
{ 0, 73} , // 231: 260 Hz 0.9615ms 259.4Hz -0.22%
{ 0, 70} , // 232: 270 Hz 0.9259ms 270.6Hz +0.21%
{ 0, 68} , // 233: 280 Hz 0.8929ms 278.5Hz -0.53%
{ 0, 65} , // 234: 290 Hz 0.8621ms 291.4Hz +0.47%
{ 0, 63} , // 235: 300 Hz 0.8333ms 300.6Hz +0.21%
{ 0, 59} , // 236: 320 Hz 0.7813ms 321.0Hz +0.31%
{ 0, 56}, // 237: 340 Hz 0.7353ms 338.2Hz -0.53%
{ 0, 53}, // 238: 360 Hz 0.6944ms 357.3Hz -0.74%
{ 0, 50}, // 239: 380 Hz 0.6579ms 378.8Hz -0.32%
{ 0, 47} , // 240: 400 Hz 0.6250ms 403.0Hz +0.74%
{ 0, 45} , // 241: 420 Hz 0.5952ms 420.9Hz +0.21%
{ 0, 43} , // 242: 440 Hz 0.5682ms 440.4Hz +0.10%
{ 0, 41} , // 243: 460 Hz 0.5435ms 461.9Hz +0.42%
{ 0, 39} , // 244: 480 Hz 0.5208ms 485.6Hz +1.17%
{ 0, 38} , // 245: 500 Hz 0.5000ms 498.4Hz -0.32%
{ 0, 34} , // 246: 550 Hz 0.4545ms 481.1Hz +1.28%
{ 0, 32}, // 247: 600 Hz 0.4167ms 591.8Hz -1.37%
{ 0, 29}, // 248: 650 Hz 0.3846ms 653.1Hz +0.48%
{ 0, 27}, // 249: 700 Hz 0.3571ms 701.0Hz +0.20%
{ 0, 25} , // 250: 750 Hz 0.3333ms 757.6Hz +1.01%
{ 0, 24} , // 251: 800 Hz 0.3135ms 789.1Hz -1.36%
{ 0, 22} , // 252: 850 Hz 0.2941ms 860.9Hz +1.28%
{ 0, 21} , // 253: 900 Hz 0.2778ms 901.9Hz +0.21%
{ 0, 20} , // 254: 950 Hz 0.2632ms 946.9Hz -0.32%
{ 0, 19} // 255:1000 Hz 0.2500ms 996.8Hz -0.32%
};
void ioport(void);
void AD0START(void);
unsigned int T0SelInterval(int val);
void T0PSSet(unsigned char n);
void main(void)
{
// OSCCAL = _READ_OSCCAL_DATA();
ioport();
PSA=0; // timer0,
T0PS = 0; // timer0 PriScaler
VR = 1;
T0SelInterval(0);
T0CS=0;
TMR0=0;
T0IF=0;
T0IE=1;
GIE=1; // ,·,
CHS0 = 0; // AD0 Select
CHS1 = 0;
DelayUs(20);
AD0START(); // A/D 
T0Lmt = T0SelInterval(ADRESH-1);
while(1){
if(GODONE == 0){
tmp2 = T0SelInterval((ADRESH));
if(tmp2 != 0) T0Lmt=tmp2;
}
AD0START();
}
}
//Timer0 
// n=0 -> 1:1
// n=1 -> 1:2
// n=2 -> 1:4
// n=3 -> 1:8
// n=4 -> 1:16
// n=5 -> 1:32
// n=6 -> 1:64
// n=7 -> 1:128
// n=8 -> 1:256
void T0PSSet(unsigned char n)
{
if(n == T0PS) return;
T0PS = n;
if(n == 0){
PSA = 1; // off

return;
}else{
PSA = 0; // on
n = n - 1;
PS0 = (n & 0x01); // b0
PS1 = ((n>>1) & 0x01); // b1
PS2 = ((n>>2) & 0x01); // b2
}
}
void AD0START(void)
{
GODONE = 1; // A/D Conv Start
}
interrupt void isr(void)
{
// unsigned char n;
TMR0=tmr;
if(T0IF == 1){
T0IF = 0; // 
cnt++;
if(cnt >= T0Lmt){
cnt=0;
if(GPIO4 == 0) PTN++;
if(GPIO3 == 0) PTN--;
PTN = PTN & 0x03;
tmp1 = ((GPIO & 0x39) | P[PTN]);
GPIO = tmp1;
}
}
}
void ioport(void)
{
CMCON = 0X07; // OFF
GPIO = 0x00; // 
TRISIO=0x39; // GP0 : 1 VR Input
// GP1 : 0 out PA
// GP2 : 0 out PB
// GP3 : 1 in down sw
// GP4 : 1 in up sw
// GP5 : 1 EC clock in
ANS0=1; //
ANS1=0; //
ANS2=0; //
ANS3=0; //
ADCS0=0; // A/D  Fosc/32
ADCS1=1;
ADCS2=0;
VCFG = 0; // 
ADFM=0; // A/D l
ADON=1; // A/D ON
}
unsigned int T0SelInterval(int val)
{
unsigned int n;
if(val == VR) return(0);
VR = val;
if(VR < 120){

// if(VR < 140){
tmr = (256 - 200);
}else{
tmr = (256 - 50);
}
T0PSSet(TC[VR][0]);
return(TC[VR][1]);
}

Delay.H
/*
 *	Delay functions for HI-TECH C on the PIC
 *
 *	Functions available:
 *		DelayUs(x)	Delay specified number of microseconds
 *		DelayMs(x)	Delay specified number of milliseconds
 *
 *	Note that there are range limits: x must not exceed 255 - for xtal
 *	frequencies > 12MHz the range for DelayUs is even smaller.
 *	To use DelayUs it is only necessary to include this file; to use
 *	DelayMs you must include delay.c in your project.
 *
 */

/*	Set the crystal frequency in the CPP predefined symbols list in
	HPDPIC, or on the PICC commmand line, e.g.
	picc -DXTAL_FREQ=4MHZ
	
	or
	picc -DXTAL_FREQ=100KHZ
	
	Note that this is the crystal frequency, the CPU clock is
	divided by 4.

 *	MAKE SURE this code is compiled with full optimization!!!
	
 */

#ifndef	XTAL_FREQ
#define	XTAL_FREQ	4MHZ		/* Crystal frequency in MHz */
#endif

#define	MHZ	*1000L			/* number of kHz in a MHz */
#define	KHZ	*1			/* number of kHz in a kHz */

#if	XTAL_FREQ >= 12MHZ

#define	DelayUs(x)	{ unsigned char _dcnt; \
			  _dcnt = (x)*((XTAL_FREQ)/(12MHZ)); \
			  while(--_dcnt != 0) \
				  continue; }
#else

#define	DelayUs(x)	{ unsigned char _dcnt; \
			  _dcnt = (x)/((12MHZ)/(XTAL_FREQ))|1; \
			  while(--_dcnt != 0) \
				  continue; }
#endif

extern void DelayMs(unsigned char);



magnetron

teşekkür ederim @ipek hocam

cevap yazanlara teşekkürler

ipek

konu ilgimi çekti,biraz araştırdım bir çok yöntemle yapılabilir olmasına rağmen,frekansın çok stabil olması ,ısı değişimlerinden etkilenmemesi gerekiyor..
U Blox çin GPS modül üreticilerin hazırladığı klasik NEO-6M modülü 0...10MHz 'kadar Time Pulse FPGA modülüne bu frekanslar ürettitiyor ve yakaladığı 3 D patterninde frekansları stabil tutabiliyor,
dahada ileri gidilmiş Neo M8N serisi üretilmiş bunda kristal yerine TCXO modülü var uyduyu bir müddet kaybedersen
sana yine çok kararlı sinyal üretebiliyor.
ben merak edip iç piyasadan bir tane almışım,yazılım bedava indirdim,3 voltu destekleyen MAX3232 modülü ile bilgisayara bağladım,konfigürasyon ayarlarından TimePulse menüsüne girdim 0...10MHz istediğim frekansı hertz bazında üretebildim 100KHz'ye kadar Jitter Gicth olmadar süper kare dalga üretiyor,bayıldım bu işe üstelik atomik kararlılıkta...ve istediğin duty cyle ile invers olanağı,bitmeden bundan bir tane daha edineyim..

kralsam

Alıntı yapılan: ipek - 14 Nisan 2020, 01:18:06konu ilgimi çekti,biraz araştırdım bir çok yöntemle yapılabilir olmasına rağmen,frekansın çok stabil olması ,ısı değişimlerinden etkilenmemesi gerekiyor..
U Blox çin GPS modül üreticilerin hazırladığı klasik NEO-6M modülü 0...10MHz 'kadar Time Pulse FPGA modülüne bu frekanslar ürettitiyor ve yakaladığı 3 D patterninde frekansları stabil tutabiliyor,
dahada ileri gidilmiş Neo M8N serisi üretilmiş bunda kristal yerine TCXO modülü var uyduyu bir müddet kaybedersen
sana yine çok kararlı sinyal üretebiliyor.
ben merak edip iç piyasadan bir tane almışım,yazılım bedava indirdim,3 voltu destekleyen MAX3232 modülü ile bilgisayara bağladım,konfigürasyon ayarlarından TimePulse menüsüne girdim 0...10MHz istediğim frekansı hertz bazında üretebildim 100KHz'ye kadar Jitter Gicth olmadar süper kare dalga üretiyor,bayıldım bu işe üstelik atomik kararlılıkta...ve istediğin duty cyle ile invers olanağı,bitmeden bundan bir tane daha edineyim..
Sanırım bende bu modülden var merak ettim doğrusu. Aslında bu kararlılığı nasıl koruduğunu daha da merak ettim.

ipek

bende baya inceledim, uydudan gelen 1PPS Time Pulse Ledi süren yer ,bir Hidrojen Maser saati tarafından yollanıyor,modüldeki osilatör ise her saniye buna senkron ediliyor,PLL gibi yani döngüye girdikten sonra sapma yapması olanaksız.

2D modunda bir kaç uydu ile korunan sinyal vasat,
3D Atomik
birde rusların Plus Geo 3D'leri var o zaman müthiş,bu herikisinede senkron olabiliyor, ve RS232 terminaline 3D moduna geçtim diye bir paket Header atıyor, tek mahzuru ,elektriği kestim 15 dakika sonra verdim,herşeyi yeniden yapmam gerekti,configürasyondan EEproma yaz kısmını bulamadım,üstündeki Pil değil 470mF kapasitör bir müddet sonra enerji gidince unutuyor..
Cold mode'den başladığı için uyduları bulması 5 dakika sürüyor,buraya bir çözüm bulmam lazım..