12 MHz'de çalışan AVR'nin yapabildiklerine bakın!

Başlatan Elektroemre, 22 Mayıs 2010, 13:55:07

Elektroemre

Bu arada@FxDev eğer eclipsede ilk derlemelerinde kod çok kabarıksa şu ayarı kontrol et:



Release seçeneği aktif olmalı. (her projede yeniden ayarlamak gerekiyor). Diğer türlü çok kabarık bir kod üretiliyor. İlk başladığımda büyük sorun yaşamıştım bununla ilgili onun için paylaşmak istedim.

Saygılar...

Elektroemre

#46
Makefile ince ayarların olduğu bi dosya. Ama Eclipse zaten bunu bizim yerimize otomatik oluşturduğu için uğraşmıyoruz.
Eğer çok gerekli olursa manuel olarakta verilebilir Eclipse'ye. berik.net'te bununda konusu geçmişti bi aralar.

Saygılar...

Elektroemre

#47
FxDev hocam sizide birazcıkta olsa Atmel tarafına doğru çekebildiysek ne mutlu:)
İlk başta hatta uzun bi süre ATmega8 biçok projede yeterde artar bile. Onunda topu topu iki Fuse Byte'ı var.
DataSheet'ten registerlere bakıp kod yazmak çok kolay Atmelde, PIC'ten çokta karışık değil daha kolay hatta.

Hadi hayırlısı :)

Sepiroth

slmlar, gordugum kadariyla burda da bir avr vs pic savasi yasanmis:) yalniz bazi ufak noktalar atlanmis bence.. bildigim kadariyla avr ve pic mimarileri farkli.(gerci bazi kaynaklar ayni oldugunu soyluyor bazisi farkli belki bazi modellerde aynidir sadece:) ). sadece mips'e bakarak hizini belirleyemeyiz bence. PICde interruptlari saymazsak ki o da piyasadaki en dusuk latencye sahip, 3 instruction cycle, pic in skip komutlari haric hepsi 1 cycle, skiplerde 2. atmelde 3 ve ya 4 cycle'a kadar uzayan komutlar var. simdi biri bi isi 1 cycle da halledio, dieri belki 3. hangisi hizli o zmn:) bide pic'in komut seti daha kucuk sanirim, atmelde daha fazla galiba. pic 18flerde belki 16mips sinir var ama komut seti daha hizli diyebilcegimizi dusunuyorum:) onun disinda, bende ayri bi sardim bu aralar avr'ye, isten vakit bulabilirsem gomulcem ama iste is vaktin cogunu alip goturuyor maalesef:)
Either you feel it, or not...

gevv

Alıntı yapılan: Elektroemre - 25 Mayıs 2010, 20:52:25
FxDev hocam sizide birazcıkta olsa Atmel tarafına doğru çekebildiysek ne mutlu:)
İlk başta hatta uzun bi süre ATmega8 biçok projede yeterde artar bile. Onunda topu topu iki Fuse Byte'ı var.
DataSheet'ten registerlere bakıp kod yazmak çok kolay Atmelde, PIC'ten çokta karışık değil daha kolay hatta.

Hadi hayırlısı :)

hocam çekmeye gerek yok zaten öyle olmalı :) bir konuda uzman olup diğerlerinden az çok bilmeli diye düşünüyorum gerçi ben programlama konusunda bilgili değilim ama bilenler mutlaka diğer işlemcileri öğrenmeli her işte böyle ne kadar çok çeşit o kadar ekmek :)  heleki maliyetin önemli olduğunu düşünürsek dahada gerekli
 

muhittin_kaplan

Alıntı yapılan: XX_CİHAN_XX - 25 Mayıs 2010, 02:17:16
"nerdeyse" tüm komutlar 1 clock saykılında gerçekleştiriliyor.
PIC te ise bu 4 clock saykılı oluyor.
Dolayısıyla atmelde 12MHZ, 12MIPS hızını desteklerken, PICte 12MHz ancak ve ancak 3MIPS hızını veriyor. :)
Küçücük (2-3 liralık) ATtinny serileri 20MIPS hızında çalışabiliyor ve 4 kanal donanımsal PWM i var.
Bu özellikleri gördüğüm vakit PIClerle oynamayı bıraktım :)
tamam onu anladım da nasıl omutlar fecth,execute vs yapılıyor. içerde çarpıyor olmasın ?

serdararikan

takip ettiğim kadarı ile AVR C de bir pine istediğimiz değeri hitech deki gibi atamıyoruz sanırım....

PINB7=1;


yapamıyoruz yani????

serdararikan

Alıntı yapılan: FxDev - 25 Mayıs 2010, 23:13:05
Alıntı yapılan: serdararikan - 25 Mayıs 2010, 23:10:05
takip ettiğim kadarı ile AVR C de bir pine istediğimiz değeri hitech deki gibi atamıyoruz sanırım....

PINB7=1;


yapamıyoruz yani????

Pin tanımlamalarında Pic'e nazaran iki farklılık var...
Birincisi DDR, TRIS gibi aynı fakat TRIS'te 0x00 lar çıkışken, DDR'de giriş oluyor.
İkincisi ise RB0 gibi bir tanımlama maalesef olmuyor. PORT tanımlaması üzerinden işler maskeleme ile yürütülüyor.

evet hitech de buna çok alışmıştık.atmel de bu rahatlığı kullanamayacağız sanırım.

serdararikan

mesela PORTD nin 7. bitini 1 yapmak için

PORTD=(1<<PIND7);


şeklinde bir kullanılabilir.

XX_CİHAN_XX

Alıntı yapılan: muhittin_kaplan - 25 Mayıs 2010, 21:50:02
Alıntı yapılan: XX_CİHAN_XX - 25 Mayıs 2010, 02:17:16
"nerdeyse" tüm komutlar 1 clock saykılında gerçekleştiriliyor.
PIC te ise bu 4 clock saykılı oluyor.
Dolayısıyla atmelde 12MHZ, 12MIPS hızını desteklerken, PICte 12MHz ancak ve ancak 3MIPS hızını veriyor. :)
Küçücük (2-3 liralık) ATtinny serileri 20MIPS hızında çalışabiliyor ve 4 kanal donanımsal PWM i var.
Bu özellikleri gördüğüm vakit PIClerle oynamayı bıraktım :)
tamam onu anladım da nasıl omutlar fecth,execute vs yapılıyor. içerde çarpıyor olmasın ?

Aradığınız cevap datasheet te açıkça gösterilmiş. Görüldüğü gibi çarpma bölme felan yok :)


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

#55
Alıntı yapılan: serdararikan - 25 Mayıs 2010, 23:17:50
mesela PORTD nin 7. bitini 1 yapmak için

PORTD=(1<<PIND7);


şeklinde bir kullanılabilir.

Ben şu tarz bir yazım şeklini benimsedim, tavsiye ederim.
#define	bitclr(x, y)	x &= ~(1<<y)
#define	bitset(x, y)	x |= (1<<y)

Bu şekilde makromu tanımlıyorum.
bitset(PORTB, 0);
	bitclr(SREG, 1);

Bu şekilde de kullanıyorum rahat oluyor.
Eğer if ile bir bitin konumunu soracaksamda,
if(bit_is_set(SREG, 0))

yada
if(bit_is_clear(PIND, 3))

Şeklinde yazıyorum.

Not: bit_is_set ve bit_is_clear makroları,
#include <avr/io.h>

dosyasında hazır olarak tanımlı bulunan bir makrodur...
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.

serdararikan

evet bu set ve clear makroları hitechde de çoğu derleyicide de mevcut fakat test işlemi için böyle bir şeye gerek yok sanırım çünki PINX  yazmacısadece okunabilen bir yazmaç olduğu için pin giriş olarak atandığında   PIN6 şeklinde direk olarak pinin değerini test edebiliriz(tabiki test işlemi port için yapılacaksa!!)

papylon

Bu arada, ECLIPSE'nin hangisini kullanmam gerekiyor ( Galileo, Helios ) ve win avr'yi nasıl adapte ediyorsunuz?

Elektroemre

Alıntı yapılan: papylon - 26 Mayıs 2010, 07:37:14
Bu arada, ECLIPSE'nin hangisini kullanmam gerekiyor ( Galileo, Helios ) ve win avr'yi nasıl adapte ediyorsunuz?

En alttaki mesaj:
https://www.picproje.org/index.php/topic,28431.30.html

papylon