CC5X örnekli anlatımı olsa keşke

Başlatan multimesut, 18 Mayıs 2006, 16:06:58

multimesut

CC5X öğranmek istiyorum. Keşke PicBasicPro gibi anlatımlı isisli çizimleri örnek kodları olan bir sunu olsa keşke. Bu dili bilenler aslında biraz oynasanız o dosyalarla bir hazırlasanız çok memnun oluruz. Bende dili öğrenirsem bende yardım ederim :D kolay gelsin iyi gönler....

ipek

bu adreste aradiklarini temin edebirsin Anadilimizde cc5x aciklamasi cok zor heveslisi ve kullanicisi cok az yinede belki gizli kahramanlar vardir
kolay gelsin   uzun yillar sonra 1k derleme limiti asilabildi buda popularitesini azaltti
http://www.isk.kth.se/kursinfo/6b4059/

multimesut

Galiba o gizli kahramanların sitesini buldum. :D tam açılsın buraya link atarım.

nuwanda

Kendi hazırladığım bir dökümanı sizlerle de paylaşmak istedim. Henüz pek fazla bilgi birikimim yok ama öğrendikçe dökümanı geliştirmeye devam edicem.Ayrıca en kısa zamanda devre çizimlerini de eklemek istiyorum.

Fakat şimdilik cc5x derleyicisi nasıl kurulur, en basit anlamda programlar nasıl yazılır diye merak edenler için başlangıç rehberi şeklinde olacaktır. Eğer döküman içerisinde yanlışlar varsa, bana bildirirseniz sevinirim.

Herkese iyi çalışmalar..


http://rapidshare.com/files/22519421/CC5X_ve_16F877.pdf.html

alieren

merhaba  nuwanda
linke verdiginiz dokumani inceledim, aynisi, birsen yayin evinden c dili ile pic programlama diye bir kitap ta var.
bazi basit programlari derleyebiliyorum. ancak bu programi derlerken en alt a vercegim hatayi veriyor, buna iliskin epey ugrasmama ragmen bir sey anlayamadim.

// INFRARED VERICI C KODLARI
#include "DELAY.h"
#define VERI PORTB.0
uns8 BUTON_KOD1,BUTON_KOD2;

void darbe(void)
{
   uns8 i;
   for(i=0;i<100;i++)
   {
      VERI=1;
      DELAY_us(50);
      VERI=0;
      bekle_us(50);
   }
}

void infra_ver(uns8 BUTON)
{
   uns8 i;
   darbe();
   darbe();
   darbe();
   darbe();
   darbe();
   VERI=0;
   DELAY_ms(12);
   for(i=0;i<8;i++)
   {
      BUTON=rr(BUTON);
      if(carry==1) darbe();
      else { VERI=0; DELAY_ms(12);}
   }
   VERI=0;
}

void main(void)
{
   TRISA=0XFF;
   TRISB=0XFE;
   CMCON=0X07;
   VERI=0;
   BUTON_KOD1=0X00;
   BUTON_KOD2=0X00;
   while(1)
   {
      BUTON_KOD1=~PORTA;
      BUTON_KOD1&=0X07;
      if(BUTON_KOD1!=BUTON_KOD2)
      {
         infra_ver(BUTON_KOD1);
         BUTON_KOD2=BUTON_KOD1;
      }
   }
}




verdigi hata ise; output un tamami olarak


Clean: Deleting intermediary and output files.
Clean: Deleted file "E:\Documents and Settings\MASIDE\Desktop\karisik\c icin\C1\infra.mcs".
Clean: Done.
Executing: "E:\Program Files\bknd\CC5X\CC5X.EXE" infra.c -CC -fINHX8M -p16F628 -a -L -Q -V -FM
CC5X Version 3.3, Copyright (c) B Knudsen Data, Norway 1992-2006
--> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim.
infra.c:

// INFRARED VERICI C KODLARI
#include "DELAY.h"
                ^------
Error[1] E:\Documents and Settings\MASIDE\Desktop\karisik\c icin\C1\infra.c 2 : Unable to open file 'DELAY.h'
(The file name or path can be wrong)

Error options: -ew: no warning details  -ed: no error details  -eL: list details
BUILD FAILED: Thu Apr 12 21:06:55 2007




ilginizi bekliyorum, saygilarimla

Macera

Anladığım kadarı ile MPLAB da CC5X ile derleme yapıyorsun.
Projenin header file kısmına delay.h dosyasını eklemelesin.
"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts

alieren

evet mplab da cc5x ile derleme yapiyorum.
yalniz dediginizi tam anlayamadim. header file kismina zaten
"DELAY.h" dosyasini #include etmisim, koda goruluyor. eger sizin dediginiz baska bir sey ise lutfen yeniden izah edebilirmisiniz.

alieren

Unable to open file 'DELAY.h'


verilen hata da DELAY.h dosyasinin acilamadigini soyluyor, neden acilmiyor acaba, bir ayar sorunumu yoksa derleyici sorunu falanmi?
normalde cc5x in bknd isimli klasorunun icerisinde DELAY diye bir dosya mevcut.

Macera

MPLAB programının delay.h dosyasına yada daha doğrusu MPLAB a tanıtığın dosyalara daha kısa bir yol ile ulaşmasını sağla.
Daha açık bir şekilde söyliyim
örneğin C:\cc5x\infra klasörü yarat derleyeceğin dosyaları vede başlık dosyalarını bu klasörün altına at.
Dosyaları MPLAB da tekrar tanıt ve derle.
MPLABda uzun dosya yolları ile bir hata var zannedersem.
"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts

alieren

Clean: Deleting intermediary and output files.
Clean: Deleted file "E:\CC5X\A.mcs".
Clean: Done.
Executing: "E:\CC5X\CC5X.EXE" infra.c -CC -fINHX8M -p16F628 -a -L -Q -V -FM
CC5X Version 3.3, Copyright (c) B Knudsen Data, Norway 1992-2006
--> FREE edition, 8-16 bit int, 24 bit float, 1k code, reduced optim.
infra.c:

// INFRARED VERICI C KODLARI
#include "DELAY.h"
                ^------
Error[1] E:\CC5X\infra.c 2 : Unable to open file 'DELAY.h'
(The file name or path can be wrong)

Error options: -ew: no warning details  -ed: no error details  -eL: list details
BUILD FAILED: Fri Apr 13 20:55:48 2007



sayin macera dediginiz bicimdede denedim ama malesef problemi asamadim, mplab i ise karistirmadan cc5x ile dos formatinda denedim yine ayni sonuc. acaba cc5x dosyasindaki delay...vb. diger dosyalarda bir problem olabilirmi. cunku LCD icin yazdigim bir program var ve onun icinde ilgili baslik dosyasi icin benzer hatayi veriyor.
bu kulandigim derleyici sinirlandirilmis free surumdur, eger elinizde varsa tam surumu nu paylasamazmisiniz, yada temin edebilecegim, bir yol onerebilirmisiniz. iyi aksamlar

Macera

şu delay.h dosyasınıda burda yayınlayabilirmisin?
"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts

alieren

/*
 DELAYS AND TIMING
 =================

 Delays are frequently used. There are various
 ways to generate them:
    1. Instruction cycle counting
    2. Using the TMR0 timer
    3. Watchdog timeout for low power consumption
    4. Using variables achieves longer delays
*/


void delay_ms( uns16 millisec)
// Delays a multiple of 1 milliseconds at 4 MHz
// using the TMR0 timer
{
   char next = 0;

   OPTION = 2; // prescaler divide TMR0 rate by 8
   TMR0 = 2;  // deduct 2*8 fixed instruction cycles delay
   do  {
       next += 125;
       clrwdt();  // needed only if watchdog is enabled
       while (TMR0 != next)   // 125 * 8 = 1000 (= 1 ms)
           ;
   } while ( -- millisec != 0);
}


void delay10( char n)
/*
 Delays a multiple of 10 milliseconds using the TMR0 timer
 Clock : 4 MHz   => period T = 0.25 microseconds
 1 IS = 1 Instruction Cycle = 1 microsecond
 error: 0.16 percent
*/
{
   char i;

   OPTION = 7;
   do  {
       clrwdt();  // only if watchdog enabled
       i = TMR0 + 39; /* 256 microsec * 39 = 10 ms */
       while ( i != TMR0)
           ;
   } while ( --n > 0);
}


void _delay10( char x)
/*
 Delays a multiple of 10 milliseconds
  using instruction cycle counting
 Clock : 32768 Hz   => period T = 30.518 microseconds
 1 Instruction Cycle = 1 IS = 4 * T = 122 microseconds
 10 ms = 82 IS (81.92) =>  error: 0.1 percent
*/
{
   do  {
       char i = 26;            /* 2 IS */
       do ; while ( --i > 0);  /* 26 * 3 - 1 = 77 IS */
   } while ( --x > 0);         /* 3 IS */
}



char counter;

void main( void)
{
   if ( TO == 1)  {
       /* power up or MCLR */
       PORTA = 0;     /* write output latch first */
       TRISA = 0;     /* all outputs */
       TRISB = 0xFF;  /* all inputs */
   }
   else  {
       /* watchdog wakeup */
       if ( --counter > 0)  {
           OPTION = 0x0B; /* WDT divide by 16 */
           sleep();  /* waiting 16 * 18 ms =
                        288 ms = 0.288 seconds */
       }
   }

   // ..

   delay_ms( 5500);  /* 5.5 seconds */

   // ..

   delay10( 100);  /* 1 second */

   // ..

   counter = 7;   // 7 * 0.288 sec. = 2 sec. totally
   OPTION = 0x0B; // 0 1011: WDT divide by 16
   // main terminates by sleep();, allows low power consumption
   // waiting for watchdog timeout: approx. 16*18 ms = 288 ms
}




DELAY DOSYASI.
birde islemciyi programda tanitmamisim, sanirim gerek yok değilmi, zaten mplab' da seciyoruz onu.

Macera

Alieren

delay.h dosyasının doğru dosya olduğuna pragramına ait olduğuna eminmisin?
Verdiğin dosyaları bir klasör altına attım.Programı derledim.
delay.h dosyasını görüyor ama yanlış yazmalardan dolayı (Syntax) alarmlar veriyor.
Birde MPLAB programında Project menüsü Build Options seçeneğine tıkla .
Çıkan yan menüden project kısmına tıkla.
Çıkan dialog kutusunda CC5X sekmesini tıkla.
En aşağıya resmin altındaki gibi -IC:\cc5xfree\ parametresini yazmalısın.
Bu include dosyalarını MPLAB altında çalışan derleyiciye tanıtır.


"Art without engineering is dreaming; engineering without art is calculating." -- Steven K. Roberts

alieren

merhaba
basaramadim bunun icin sana bendeki derleyiciyi yoluyorum, bir bakarsabelki orada bir sorun vardir.

http://rapidshare.tv/383621

mplab olarakta;
v7.31 i kulaniyorum.

tesekur ederim.

gsever

Konudan epey alakasız bir soru sorayım.

HI-TECH PICC gibi çok güçlü bir ANSI-C Picmicro derleyicisi dururken niçin CC5X?

Keza, pekçok pratik C derleyicisi varken fazladan başağrısı olmuyor mu bununla uğraşmak?