Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Microchip PIC => Konuyu başlatan: tuzluerik - 26 Kasım 2017, 15:57:23

Başlık: PIC ile sinüs ve üçgen dalga üretimi
Gönderen: tuzluerik - 26 Kasım 2017, 15:57:23
Merhaba arkadaşlar ben pıc ile üçgen ve sinüs dalga üretmek istiyorum. sinüs dalgayı ürettim ama üçgen dalgayı üretemiyorum yardımcı olabilir misiniz?
sinus1 deki değerleri üçgene göre ayarlıyorum ama üçgen dalga üretemiyorum sorun nerde acaba?
sinüs dalga kodu :

#include <16F877A.h>
#FUSES NOWDT,XT,NOPUT,NOPROTECT
#use delay(clock=4000000)
#use fast_io(B)
#define pwm PIN_B0

const unsigned int16 sinus1[300]={
0,0,0,0,1,
2,3,5,7,8,10,13,15,18,21,24,27,31,35,39,43,47,52,56,61,66,72,77,83,89,95,
101,108,114,121,128,135,142,150,157,165,173,181,189,197,206,214,223,232,
240,250,259,268,277,287,296,306,315,325,335,345,355,365,375,385,396,406,
416,426,437,447,458,468,479,489,500,510,520,531,541,552,562,573,583,593,603,614,624,634,644,654,664,674,684,
693,703,712,722,731,740,750,759,767,776,785,793,802,810,818,826,834,842,
849,857,864,871,878,885,891,898,904,910,916,922,927,933,938,943,947,952,
956,960,964,968,972,975,978,981,984,986,989,991,992,994,996,997,998,999,
999,999,1000,999,999,999,998,997,996,994,992,991,989,986,984,981,978,975,
972,968,964,960,956,952,947,943,938,933,927,922,916,910,904,898,891,885,
878,871,864,857,849,842,834,826,818,810,802,793,785,776,767,759,750,740,
731,722,712,703,693,684,674,664,654,644,634,624,614,603,593,583,573,562,
552,541,531,520,510,500,489,479,468,458,447,437,426,416,406,396,385,375,
365,355,345,335,325,315,306,296,287,277,268,259,250,240,232,223,214,206,
197,189,181,173,165,157,150,142,135,128,121,114,108,101,95,89,83,77,72,66,
61,56,52,47,43,39,35,31,27,24,21,18,15,13,10,8,7,5,3,2,1,0,0,0};



void main()
{
   int16 n1,sayac,mark1,t1,t2,mark1_sayac;
   set_tris_b(0x00);
   output_b(0x00);
   output_low(pwm);
   
   
   mark1_sayac=0;
   n1=1;

   while(true) {
             
              if (mark1_sayac<300) mark1=(sinus1[mark1_sayac]);           
              mark1_sayac++;         
              if(mark1_sayac==300) mark1_sayac=0;
             
              t1=mark1;
              t2=1000-mark1;
   
              for(sayac=0;sayac<15;sayac++) {
                       
                           output_high(pwm);
                           delay_us(t1);
                           output_low(pwm);
                           delay_us(t2);
                       
                       }                 
              }
    }  (not:kodlar alıntıdır)

Başlık: Ynt: PIC ile sinüs ve üçgen dalga üretimi
Gönderen: felix_eray - 27 Kasım 2017, 11:27:46
Tabloda üçgene göre ayarladığın değerleri paylaşırmısın.
Başlık: Ynt: PIC ile sinüs ve üçgen dalga üretimi
Gönderen: Hattusa - 27 Kasım 2017, 11:36:46
slm

mcu ile sinüs üretimi için küçük bir program, bu programla üreteceğiniz sinüsü hesaplayarak otomatik tablo çıkartıyor


http://dosya.co/43vctfi1i7r1/Smart_SineDAC-SINUS.rar.html
(http://dosya.co/43vctfi1i7r1/Smart_SineDAC-SINUS.rar.html)
Başlık: Ynt: PIC ile sinüs ve üçgen dalga üretimi
Gönderen: tuzluerik - 05 Aralık 2017, 19:37:20
üçgen için kullabdığım değerler
const unsigned int16 sinus1[300]={
0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,
31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50,51,52,53,54,55,56,57,58,
59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74,75,76,77,78,79,80,81,82,83,84,85,86,
87,88,89,90,91,92,93,94,95,96,97,98,99,100,101,102,103,104,105,106,107,108,109,110,
111,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,127,128,129,130,131,
132,133,134,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,
149,148,147,146,145,144,143,142,141,140,139,138,137,136,135,134,133,132,131,130,129,
128,127,127,126,125,124,123,122,121,120,119,118,117,116,115,114,113,112,111,110,109,
108,107,106,105,104,103,102,101,100,99,98,97,96,95,94,93,92,91,90,89,88,87,86,85,84,
83,82,81,80,79,78,77,76,75,74,73,72,71,70,69,68,67,66,65,64,63,62,61,60,59,58,57,56,
55,54,53,52,51,50,49,48,47,46,45,44,43,42,41,40,39,38,37,36,35,34,33,32,31,30,29,28,
27,26,25,24,23,22,21,20,19,18,17,16,15,14,13,12,11,10,9,8,7,6,5,4,3,2,};