aduc 7026 başlangıç

Başlatan skara1214, 02 Mayıs 2011, 15:30:13

skara1214

iyi günler herkese benim bir proje için aduc 7026 kartını kullanmam gerekli fakat bu konu hakkında hiçbir fikrim yok.Yani pic çok kullandım o konuda baya iyi sayılırım.Ccs c dilini kullanıyordum orada fakat 7026 nın  örneklerine  bakınca falan baya farklı geldi yani portların nasıl giriş çıkış yapılacağını dahil pek anlamadım.Bunun için kitap falanda bulamadım.benim bu kartla adc dac yi kullanmam gerekli nereden ve nasıl yardım alabilirim.şimdiden teşekkür ederim....
Herkes ölür ama herkes gerçekten yaşamaz

remzi

Sakarya Üni. Mikroişlemci dersleri notlarına bakmanızı tavsiye ederim. Onlar ADUC ile çalışıyorlar.

rf

ADUC7026 içerisinde ARM7 core bulunmaktadır. Bahsettiğiniz işlemleri yapabilmeniz için arm programlama öğrenmeniz gerekmetedir.
İşiniz CCS C kadar kolay olmayacaktır. 
Tavsiyem ansi c ye geçiş yaptıktan sonra Keil ile ARM7 çalışmanız daha sonrası bir kaç register set etmenizden ibaret.

Eğer PIC ve C konsunda iyi olduğunuzu düşünüyorsanız en fazla bir hafta sürecektir.

Kitap konusunda gelince forumda ARM a başlamak için verilen bir çok yerli yapancı kitap ve kaynak bulunmaktadır.

Saygılarımla,
KOSGEB Girişimcilik Desteği Bilgi ve Paylaşım Platformu http://www.girisimcilikdestegi.com/

skara1214

cevaplarınız için çok tesekkür ederim.Fakat böyle arm c v.s gibi bir türkçe yada ingilizce döküman bulamadım 3 gündür araştırmama rağmen.hep uygulama örnekleri var ama .Dac için su registeri söyle yapın v.s gibi birşey yok.bununla ilgilide yardımda bulunursanız çok teşekkür ederim
Herkes ölür ama herkes gerçekten yaşamaz

rf

Nerde aradınız bilmiyorum ama çok uzakta aramayın forumda hiç durmadan okusanız bir yılınızı alacak döküman var.

ADC nasıl çalışır DAC nasıl çalışır vs. nasıl çalışır sorularının ANSI cevabı.
Ürünün kendi datasheet'indedir.
http://www.analog.com/static/imported-files/data_sheets/ADuC7019_7020_7021_7022_7024_7025_7026_7027_7028_7029.pdf
DAC sayfa 52
ADC sayfa 41

CCS C mantığından bir an önce sıyrılmazsanız herşeyin komutunu aramaya devam edersiniz....
KOSGEB Girişimcilik Desteği Bilgi ve Paylaşım Platformu http://www.girisimcilikdestegi.com/

skara1214

aslında doğru söylüyorsunuz bu benim büyük bir eksikliğim yani hazır kodlarla iş yaptım hep.bundan sonrada oturup işin zor kısmını ögrenmek sıkıcı geliyor.
Herkes ölür ama herkes gerçekten yaşamaz

Erol YILMAZ

Keil in sitesinde ADUC ile ilgili olarak baya ayrıntılı kodlar var.

Örneklerden yola çıkarsan anlaman daha kolay olabilir.

tabi arada bi datasheete bakmayı da unutma  ::)

http://www.keil.com/dd/chip/3694.htm

skara1214

yanıtınız için çok teşekkür ederim.fakat bir sorum daha olacak.
Dün birkaç tane basit devre yaptım ama bunları derlediğimde ewd v.s gibi çıktılar veriyor bunu aduc 7026 ya nasıl yükleyeceğim?yani seriporta bağladıktan sonra nasıl bir yok izlemeliyim çalıştırmak için?
Herkes ölür ama herkes gerçekten yaşamaz

rf

Eğer keil derleyiciden bahsediyorsan ayarlarınd hex dosyasını oluşturmasını seçebiliyorsun daha sonra oluşan hex dosyasını seri port üzerinden gönderiyorsun işlemciye...

flash/Configure flash tool/output/create hex file

KOSGEB Girişimcilik Desteği Bilgi ve Paylaşım Platformu http://www.girisimcilikdestegi.com/

skara1214

Keil kullanmıyorum ne yazıkki.Iar embedded workbench kullanıyorum.
Herkes ölür ama herkes gerçekten yaşamaz

skara1214

Iar da hex yapamıyorum.Keildede derlerken problem çıkartıyor 702x.s dosyasından kaynaklı  problem yasıyorum.ne yapmalıyım?
Herkes ölür ama herkes gerçekten yaşamaz

Erol YILMAZ

ARM işlemcide Keil iyi gider.

skara1214

keilde bunu derliyorum;
#include <ADuC7026.h>
#define CLOCK   22544384            // CPU configured for 22.544384 MHz clock
#define T0_FREQ     5000            // Timer 0 Reload Frequency

#define T0_LD   ((unsigned short)(CLOCK/16 / T0_FREQ))

int ADC_samples[16];


extern volatile int T0_Tick;        // Timer 0 Current Tick Value
                int T0_Last;        // Timer 0 Last Tick Value

int main (void) {
  int i;

  ADCCON = 0x23;                   // Configure DAC1 (LED) Range 0..VDD
  ADCCN  = 0x10;               // Set the negative ADC input to "reference" (ground)

  while (1) {                       // Loop forever
    for(i = 1; i < 16; i++)
   {
      ADCCP = i;               // Set the MUX to read the next input
      ADCCON |= 0x80;            // Start the conversion
     while(ADCSTA);            // Wait until the converstion finishes

     ADC_samples = (ADCDAT >> 0x10)&0x0FFF;

      ADCCP = 0;               // Sample ADC0 every time
      ADCCON |= 0x80;            // Start the conversion
     while(ADCSTA);            // Wait until the converstion finishes

     ADC_samples[0] = (ADCDAT >> 0x10)&0x0FFF;
    }
  }
}
şöyle bir hata veriyor;
Build target 'Target 1'
linking...
ss.axf: Error: L6218E: Undefined symbol DAbt_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol FIQ_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol IRQ_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol PAbt_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol SWI_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol Undef_Handler (referred from aduc702x.o).
Target not created
yani aduc702x i kendi oluşturuyor ben ona birşey yapmıyorumki.bu problemi nasıl çözerim sizce?
Herkes ölür ama herkes gerçekten yaşamaz

CLR

Alıntı yapılan: skara1214 - 05 Mayıs 2011, 00:56:57
keilde bunu derliyorum;
#include <ADuC7026.h>
#define CLOCK   22544384            // CPU configured for 22.544384 MHz clock
#define T0_FREQ     5000            // Timer 0 Reload Frequency

#define T0_LD   ((unsigned short)(CLOCK/16 / T0_FREQ))

int ADC_samples[16];


extern volatile int T0_Tick;        // Timer 0 Current Tick Value
                int T0_Last;        // Timer 0 Last Tick Value

int main (void) {
  int i;

  ADCCON = 0x23;                   // Configure DAC1 (LED) Range 0..VDD
  ADCCN  = 0x10;               // Set the negative ADC input to "reference" (ground)

  while (1) {                       // Loop forever
    for(i = 1; i < 16; i++)
   {
      ADCCP = i;               // Set the MUX to read the next input
      ADCCON |= 0x80;            // Start the conversion
     while(ADCSTA);            // Wait until the converstion finishes

     ADC_samples = (ADCDAT >> 0x10)&0x0FFF;

      ADCCP = 0;               // Sample ADC0 every time
      ADCCON |= 0x80;            // Start the conversion
     while(ADCSTA);            // Wait until the converstion finishes

     ADC_samples[0] = (ADCDAT >> 0x10)&0x0FFF;
    }
  }
}
şöyle bir hata veriyor;
Build target 'Target 1'
linking...
ss.axf: Error: L6218E: Undefined symbol DAbt_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol FIQ_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol IRQ_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol PAbt_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol SWI_Handler (referred from aduc702x.o).
ss.axf: Error: L6218E: Undefined symbol Undef_Handler (referred from aduc702x.o).
Target not created
yani aduc702x i kendi oluşturuyor ben ona birşey yapmıyorumki.bu problemi nasıl çözerim sizce?

Merhaba,

Bu programı biryerden alıp, derleyiciye kopyalamışsın ama eksik dosyalarla birlikte,

1) Handler dosyaları startup.s içinde olur bunu çalıştığın klasöre kopyalamamışsın galiba veya bu interrupt fonksiyonlarının olduğu bir c file eksik

2) aşağıda gördüğün gibi extern tanımlı demekki programı yazan kişi başka bir header/C file tanımlamış ama sen programına dahil etmemişsin

extern volatile int T0_Tick;        // Timer 0 Current Tick Value
                int T0_Last;        // Timer 0 Last Tick Value

Bu eksik dosyaları dahil edersen derleyecektir.

Knowledge and Experience are Power

skara1214

cevabınız için teşekkür ederim. fakat startup.s dosyasını aduc702x.s olarak kendisi oluşturuyor ben ona birşey yapmıyorum.Bu kodda direk keilın kendi sitesindeki örnek hiç dokunmadım acaba derleme yapacakmı diye denedim .extern volatile v.b olmayan bomboş sadece main olan koddada  aynı problemi veriyor.Ben problemin elimdeki keil versiyonuyla alakalı olabileceğini düşünüyorum yada vista ve kaspersky antivirüsten birisinden kaynaklanabilir.sizce bunlar etkilermi?
Herkes ölür ama herkes gerçekten yaşamaz