Haberler:

Forum kuralları güncellendi LÜTFEN  okuyunuz:  https://bit.ly/2IjR3ME

Ana Menü

CCS C ile DSpic33F için pwm kodu

Başlatan XX_CİHAN_XX, 02 Temmuz 2011, 14:26:53

XX_CİHAN_XX

#include <33FJ12GP201.h>


void main(void) 
{
  setup_timer2(TMR_INTERNAL | TMR_DIV_BY_1, 0xFFC0);

  setup_compare(1, COMPARE_PWM | COMPARE_TIMER2);
  
  set_pwm_duty(1,512);  
 
 while(TRUE)
  {
     
 
  }
}


Bu kod CCS C nin EX_pwm.C dosyasından çekilmiştir. 16 bitlik Picler için kullanılan bir rutindir. Yeni bir proje oluşturup bu kodları derlemeye kalktığımda;

Bu satırda hata alıyorum
  setup_compare(1, COMPARE_PWM | COMPARE_TIMER2);


Sebebi nedir?
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

JKramer

Bu çipler için fonksiyonlar değişmiş sanırım, setup_ccp1(...) yerine setup_compare(1,...) olmuş gibi. Derleyici sürümünüzü güncellemek çözüm olabilir. Verdiği hatada fonksiyonun tanımlanmadığını mı söylüyor?

Eski kullanma kılavuzunda bu fonksiyonlar yok, Ocak 2011'de çıkan kılavuzda ise yazmışlar: www.ccsinfo.com/downloads/PCDReferenceManual.pdf

XX_CİHAN_XX

Alıntı yapılan: JKramer - 02 Temmuz 2011, 14:42:09
Bu çipler için fonksiyonlar değişmiş sanırım, setup_ccp1(...) yerine setup_compare(1,...) olmuş gibi. Derleyici sürümünüzü güncellemek çözüm olabilir. Verdiği hatada fonksiyonun tanımlanmadığını mı söylüyor?

Eski kullanma kılavuzunda bu fonksiyonlar yok, Ocak 2011'de çıkan kılavuzda ise yazmışlar: www.ccsinfo.com/downloads/PCDReferenceManual.pdf

Evet fonksiyonun tanımlanamadığını söyleyen bir hata var. Bendeki 4.106 sürüm. Baktım şimdi en son 4.122 çıkmış ama onunda crack ini nerden bulacam  :(
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

XX_CİHAN_XX

Ya işin kötü tarafı eski komut olan setup_ccp1() komutunada aynı hatayı veriyor
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

GreeN

Kodun tümünü paylaşsan verdiğin satırlarda problem yok , yada hata tam olarak nedir onu yazsan daha güzel olur.
Terörü Lanetliyoruz.

XX_CİHAN_XX

#include "33FJ12GP201.h"

#FUSES NOWDT                    //No Watch Dog Timer
#FUSES NOWRTB                   //Boot block not write protected
#FUSES NOBSS                    //No boot segment
#FUSES NOPROTECT                //Code not protected from reading
#FUSES NOWRT                    //Program memory not write protected
#FUSES FRC_DIV_BY_16            //Internal FAST RC oscillator with 16x PLL
#FUSES NOCKSFSM                 //Clock Switching is disabled, fail Safe clock monitor is disabled
#FUSES NOOSCIO                  //OSC2 is clock output
#FUSES NOPR                     //Pimary oscillaotr disabled
#FUSES WINDIS                   //Watch Dog Timer in non-Window mode
#FUSES WPRES128                 //Watch Dog Timer PreScalar 1:128
#FUSES WPOSTS16                 //Watch Dog Timer PostScalar 1:32768
#FUSES PUT128                   //Power On Reset Timer value 128ms
#FUSES NOALTI2C                 //I2C mapped to alternate pins
#FUSES IESO                     //Internal External Switch Over mode enabled
#FUSES IOL1WAY                  //Allows only one reconfiguration of peripheral pins
#FUSES NODEBUG                  //No Debug mode for ICD
#FUSES NOCOE                    //Device will reset into operational mode
#FUSES NOJTAG                   //JTAG disabled
#FUSES ICSP1                    //ICD uses PGC1/PGD1 pins

#use delay(clock=80000000)

void main()
{   
   setup_compare(1,COMPARE_PWM | COMPARE_TIMER2 );
   setup_timer2(TMR_INTERNAL | TMR_DIV_BY_1,0 );
   setup_spi( FALSE );
   setup_wdt(WDT_OFF);
   setup_timer1(TMR_DISABLED|TMR_DIV_BY_1);
   set_pwm_duty(1, 32768);

   while(1);

}

Bu şekilde derlemeye kalktığımda aşağıdaki satırlara hata veriyor
   setup_compare(1,COMPARE_PWM | COMPARE_TIMER2 );
   set_pwm_duty(1, 32768);


Bu sorunun derleyiciden olduğunu düşünmeye başladım. Bu kodu derleyebilen arkadaş var mı?
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

JKramer

Çıkmam gerektiği için çipin kataloğunu indiremedim; 1 yazan yere pini (PIN_A1 gibi, pwm hangi pindeyse) yazıp dener misiniz?

GreeN

dsPIC33FJ12GP201 direk PWM çıkışı yok. Remappable Pins 8 adet pin var. Bu pinlerden birini PWM çıkışı olarak seçmelisiniz.
Terörü Lanetliyoruz.

GreeN

Tabi bunun için

#pin_select OC1=PIN_B0


satırını eklemen yeterli.

datasheat 'a bakarsan RPxx pinlerinin istediğini PWM çıkışı yapabilirsin.
Terörü Lanetliyoruz.

XX_CİHAN_XX

Alıntı yapılan: GreeN - 02 Temmuz 2011, 18:55:51
Tabi bunun için

#pin_select OC1=PIN_B0


satırını eklemen yeterli.

datasheat 'a bakarsan RPxx pinlerinin istediğini PWM çıkışı yapabilirsin.

Evet sorun buymuş. Teşekkürler...
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

jackal183

arkadaşlar ccs'in bahsettiğiniz versiyonu hangisi, benim kullandığım versiyonda, wizard'dan dspicleri seçince program setıp fonksiyonların hepsinde "undefined" şeklinde hata veriyor, bunu nasıl çözebilirim?

XX_CİHAN_XX

Benim versiyonum yukarıda da söylediğim gibi 4.106.
Crack problemin olabilir Sonsivri sitesinde güncel versiyon bulma imkanın var
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

atakan16

Arkadaşlar konusu değil ama izninizle bişey sormak istiyorum...CCs de picin içine mod özelliği nasıl koyabilirim.Aynı telefonlardaki gibi genel modunda yada sessiz moduna alıp çalıştırma mantığında nasıl yapabilirim.Bana bir yol göstebilir misiniz.Acemiyimde biraz :)