Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: Elektroemre - 22 Mayıs 2010, 13:55:07

Başlık: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 22 Mayıs 2010, 13:55:07
Nette dolaşırken Atmega644 ile yapılmış bir projeyle karşılaştım. 12 MHz (12 MIPS) ile yapabildikleri bence etkileyici.
Bende yaklaşık 4 aydır ATmega serisiyle çalışıyorum ve gerçekten PIC'lerin yüzünü bile görmek istemiyor insan bi kez alışınca=)
Fiyat ve performans olarak süper MC'ler bence.

Kodlar C++ ile yazılmış. Kaynak kodlarda sitede mevcut.
Link:
http://rossum.posterous.com/avr-homebrew-device-with-iphone-aspirations (http://rossum.posterous.com/avr-homebrew-device-with-iphone-aspirations)

Diğer projeleride ilgi çelici:
http://rossum.posterous.com/ (http://rossum.posterous.com/)


Videosu:



Hardware
320x240 LCD with 4 wire resistive touch screen - a ELT240320ATP variant from a dead Sylvania MP3 player - uses a ILI9325 controller.
12Mhz Atmega644 CPU with 64k Flash and 4k RAM - demo fits in 32k.
USB connector for PC communication and charging.
Lithium polymer battery with software controlled power.
Software controlled backlight.
SD Micro slot.

Software
LCD driver to support blitting image decompression and smooth scrolling.
Z-sorted span 3D engine with zero overdraw.
Basic UI framework for gadgets and poorly drawn pictures.
USB mouse or keyboard HID support.
Sampling profiler.
Movie playback.
Sprite engine.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 22 Mayıs 2010, 14:10:45
Bunu yapanı Apple yazılımcı olarak en kısa zamanda "kapaklar"  :)
Bu proje GNU  olarak devam etmez :D edemezz....
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: PROTECH_ - 22 Mayıs 2010, 15:39:27
Çok hoş bir proje olmuş tek kelime ile!

bir 8bit mcu için çok iyi bir performans
Ama  bazı ayrıntılar var :
Kodları inceledim göründüğü gibi atmega64 e çok uçuk işlemler yaptırılmamış . Grafik ile alakalı şeylerin çoğu sd kartın içinde hazır (jpeg yerine lcd ile birebir çözünürlükte bmp dosyaları vs... )
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 22 Mayıs 2010, 15:49:51
Evet öyle ayrıntılar var. Ayrıca kaydırma işlemindede LCD'nin hardware scroll desteği kullanılmış.
Birkaç pixel kaydırma yapmak için tüm LCD'ye yeniden veri gönderilse performans çok kötü olurdu.
Sadece kayan alan kadarı yeniden gönderiliyor LCD'ye.
Yinede güzel bir proje. Ayrıca sitede ILI9325'li 320x240 TFT konusu vardı onun içinde güzel bir örnek.

Saygılar...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: PROTECH_ - 22 Mayıs 2010, 15:59:33
WinAvr de çok güzel bir derleyici imiş...
Bu kadar kodu problemsiz şekilde derlediğine göre avr projeleri için önerilecek bir derleyici.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 22 Mayıs 2010, 16:08:40
Kesinlikle öyle. Ayrıca bedava! Kürek kaçak göçek vs yok.
Atmel'le uğraşan bir çok kişi kullanıyor ve sürekli geliştiriliyor.
Ticari derleyicilerden fazlası var eksiği yok bence.
Birde derleyiciyi Eclipse'ye adapte ettin mi başka hiç bir derleyiciye değişmem =)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: PROTECH_ - 22 Mayıs 2010, 16:12:26
Ben şuanda eclipse ile kullanıyorum fakat AvrStudio ya geçmeyi düşünüyorum siz ne tavsiye edersiniz? 
Gördüğüm kadarı ile avrstudio debug işlemleri için daha iyi (simulasyon vs. )
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 22 Mayıs 2010, 16:20:35
Hi-Tech Hi-Tide'dan kalma alışkanlıklar nedeniyle Eclipse bana çok kolay ve kullanışlı geliyor. (Zaten Hi-Tide Eclipse'nin makyajlı hali)
Debug işlemleri için proteus kullanıyorum ama genelde direkt olarak donanınım üzerinde çalıştrııyorum kodları.
Yaptığım USB programlayıcıyıda Eclipseye adapte ettim. Tek tıkla derlenen kod, donanıma aktarılıyor. Herşey kolay ve temiz.

AvrStudio'yu denemek için Win7'ye kurmaya çalışınca hata vermişti. Hiç deneme fırsatım olmadı o yüzden yorum yapamayacağım. İkisininde kendine göre artı eksileri vardır tabi.

Saygılar...

Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: erhanmete - 24 Mayıs 2010, 09:00:53
codevisionavr öneririm üstelik lisansı 150 euro cuk.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 24 Mayıs 2010, 11:49:36
denemek isteyenler için 2.03.4 versiyonu,
http://uploaded.to/?id=iamdyd  ilaçlanmış gübrelenmiş, ekiyorsun çıkıyor modeli...

Link GÜNCELLENDİ.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: dhan000 - 24 Mayıs 2010, 12:47:39
Allegro üstadım gübreli toprak yok diyor...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: sigmoid - 24 Mayıs 2010, 12:51:54
En kısa zamanda AVR öğrenmek istiyorum  ;D
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: PROTECH_ - 24 Mayıs 2010, 12:53:29
WinAvr olmadıktan sonra  atmelin ne farkı kalıyorki?

Benim atmeli seçmemin en önemli nedeni winavr : özgür yazılım + winavr ile yapılmış bir sürü örnek var...

WinAvr + eclipse = bir numara bence
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 24 Mayıs 2010, 13:28:10
@Allegro hocam konuyu geçici mesajlara açmıştım ama güzel paylaşımlar oldu, konu ATMEL başlığı altına taşınabilirse AVR ile ilgilenmek isteyen diğer arkadaşlarada faydalı olur diye düşünüyorum.

Saygılar...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 24 Mayıs 2010, 14:15:30
Alıntı yapılan: dhan000 - 24 Mayıs 2010, 12:47:39
Allegro üstadım gübreli toprak yok diyor...

Afedersin... Şu anda link çalışıyor...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: gevv - 24 Mayıs 2010, 14:20:56
@Allegro abi  bir ara  ATMEL vs PIC diye sormuştum PIC demiştin şimdi konularda yorumların ile atmele teşfik ediyorsun :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 24 Mayıs 2010, 14:50:23
Kusura bakma şirket değiştirdim de..
Artık Atmel satıyoruz :D
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: PROTECH_ - 24 Mayıs 2010, 14:57:42
Alıntı yapılan: Allegro - 24 Mayıs 2010, 14:50:23
Kusura bakma şirket değiştirdim de..
Artık Atmel satıyoruz :D

hocam profil resmin nezaman değişecek ATMEL den bişiler korsun artık  ::)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Cetinal - 24 Mayıs 2010, 15:15:15
Buyur Erol abi.  (Atmel CEO'su)

(http://files.shareholder.com/downloads/ATML/0x0x141501/491FE084-338E-4AC5-A3AC-8C9FD3205FFD/Steve_Laub_new.jpg)

Bu arada Source Boost tan dolayı  PIC le arasında duygusal bir bağ oluştu :D   Vazgeçemez...

Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 24 Mayıs 2010, 15:21:01
RTOS konusunda AVR de o kadar çok opsiyon var ki başım döndü.

Sadece AVRx RTOS bile beni yoldan çevirmeye yetti :)

Sourceboost ta ayrı bir güzellik tabi :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 24 Mayıs 2010, 23:51:19
Bende PIC ten ATMEL' e göç edenlerdenim. Kesinlikle tavsiye ediyorum. Buradaki video zaten performansını gözler önüne seriyor, üstüne daha ne söylenebilir ki... İlk zamanlar win avr editörünü kullanıyordum şuan AVR studio kullanıyorum. MPLAB gibi bir havası var hoşuma gitti :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: muhittin_kaplan - 25 Mayıs 2010, 01:49:37
bu zamazing nsıl oluyorda 12clk da 12mpıs yapıyor?
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: 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 :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: THeKiNG - 25 Mayıs 2010, 02:38:48
Arkadaşlar ben pic e başlıcaktım. Sizce başlamıyım mı  :) Bu proje aklımı çeldi
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: KAZIMUGUR - 25 Mayıs 2010, 07:16:38
 :o sizin gözünüz dönmüş nankörlerrr.
Yakında PicProjenin adını avareproje yapalım  da dersiniz , korkulur sizden . :D
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: papylon - 25 Mayıs 2010, 07:55:31
Kazım hocam nankörlük insanoğlunun yaradılışında var,
Sanırım bende aralarına katılacağım.  ;D
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 25 Mayıs 2010, 11:19:22
aslında avareproje.com kulağa hiçte fena gelmiyor  ;D
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 25 Mayıs 2010, 12:48:06
Atmeller'le ilgilenmek isteyen arkadaşların biraz daha aklını çelelim; :)
ATmega ve ATtiny serisini programlayan basit ucuz(maliyeti 10 TL bile değil) bi USB programlayıcı, board üzerinde denedim sonuç çok iyi;
https://www.picproje.org/index.php/topic,28462.0.html (https://www.picproje.org/index.php/topic,28462.0.html)

avareproje.org :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: t2 - 25 Mayıs 2010, 14:50:10
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. :)
Pice 12 Mhz kristal takıp 48 Mhzde çalıştırıyorsun. hatta bazı serilerde bu osilatör çok esnekmiş 20 Mhz  kristal takarsan 80Mhzde krallar gibi kullanıyormuşsun.  Sizce bu  bahsettiğim picler kaç $ dır? sadece 1.3 $ hem usb si de içinde  ;)  Yağni demem o ki yapacağınız işe göre pic veya başka bir şey seçebilirsiniz. bunların kendine göre avantajı vardır veya yoktur. Bazısı da avantajlıdır fakat kullanamazsınız. çünkü bilmezsiniz.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 25 Mayıs 2010, 15:10:49
Alıntı yapılan: t2 - 25 Mayıs 2010, 14:50:10Yani demem o ki yapacağınız işe göre pic veya başka bir şey seçebilirsiniz. bunların kendine göre avantajı vardır veya yoktur. Bazısı da avantajlıdır fakat kullanamazsınız. çünkü bilmezsiniz.

Tebrikler... Çok güzel bir açıklama yapmışsınız.  Bazen 1 i bazen de diğeri avantajlı olur.
Önemli olan aklımızdakini gerçekleştirip gerçekleştiremediğimiz.
Aklımızda FİKİR namına birşey yoksa AVR den daha hızlısı da olsa bi işe yaramaz :)

yalnız şu esnek osc li, 20 mhz xtal ile x4 PLL = 80 Mhz çalışan PIC MCU lar hangileri ? :)))

DİP NOT :
Kod yazan ve sebepsiz yere daha iyi geliştirme aracı arayan herkese bu NOTUM :
Kullanmayı bilmediğin attan, eşek bile olmaz :D
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: t2 - 25 Mayıs 2010, 15:28:01
Yanlış söylemişim 80 değil 96 Mhz. yani 24 Mhz kristal takarsan picin 96 Mhz ile çalışıyor. tepe tepe kullanıyorsun. Bu picler K veya J serisi piclermiş . Tam numarasını hatırlayamadım. arayın bulun  :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 25 Mayıs 2010, 15:59:18
Alıntı yapılan: t2 - 25 Mayıs 2010, 15:28:01
Yanlış söylemişim 80 değil 96 Mhz. yani 24 Mhz kristal takarsan picin 96 Mhz ile çalışıyor. tepe tepe kullanıyorsun. Bu picler K veya J serisi piclermiş . Tam numarasını hatırlayamadım. arayın bulun  :)

iddiayı ortaya atan sensin... :)
Varsa "şu" de... yoksa "sus"...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: t2 - 25 Mayıs 2010, 16:22:52
var hocam  ama ben kullanmadım. adam bunu  kataloga bakmış söylüyor. o tarihte bende baktım gerçekten sistem müsaitmiş katalogda üst sınır baya yukarıdaydı. Ben şuan bir pici 12 Mhz takarak 48 Mhz de çalıştırıyorum. Şuan  kullandığım picin datasına baktım ama uzun sayfalar 96Mhz diye aratınca çıkmadı. tam da yerini bulamadım.

Ama o tarihte adamın dediği pice , kataloğa bakmıştım  gayet güzel bir şekilde çalışabilir.  Şimdi buna ihtiyaç duyan kolayca deneyebilir. zor değil. sadece  24 Mhz kristali takacaksın. PLL i ayarlayacaksın. tabi usb kulanacaksan usb clock 48 de sabit olacak. sistem clk 96 olacak.  ışık hızında kullanacaksın.

ben bunun çalışacağına inanıyorum ama ihtiyaç duymadım. şimdi "ispatlamak" için oturup devre mi kurayım.  sadece duyduğumu söylüyorum. hem bunu diyen adam bir amatör değil.  işi n erbabı biri. bir Compiler'ın  müellifi oluyor.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 25 Mayıs 2010, 16:31:37
Alıntı yapılan: t2 - 25 Mayıs 2010, 16:22:52
ben bunun çalışacağına inanıyorum ama ihtiyaç duymadım.
şimdi "ispatlamak" için oturup devre mi kurayım. 
sadece duyduğumu söylüyorum.
hem bunu diyen adam bir amatör değil. 
işi n erbabı biri. bir Compiler'ın  müellifi oluyor.

Sözünün eri, lafının ardında durur.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 25 Mayıs 2010, 17:11:39
MHZ ile MIPS kavramı karışıyor gibi geldi.
12Mhz  takıyorsunuz 48Mhz olarak kullanıyorsunuz  waaoovv  :o
Peki bu 48MHZ kaç MIPS oluyor yine 12MIPS oluyor  :)
İşlemcinin hızını MHz ile değil MIPS ile ifade ederseniz daha az yanıltıcı olur.

Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 25 Mayıs 2010, 17:27:01
(http://img143.imageshack.us/img143/4138/performancec.jpg)
Şekilde de görüldüğü gibi 8 bitlik PIC serilerinin en iyisi olan PIC18 serisi
en fazla 16MIPS i görebilirken ATMEL lerin 8 bitlik hemen her modeli 19 - 20MIPS hızını desteklemektedir :)

Burada adil bir performans kıyaslaması için atmelin 8 bitlik modeli ile tutupta PIC in 16 yada 32 bitlik modellerini kıyaslamıyacaksınız herhalde :)
Yoksa ATMEL in de çok güzel 32 bitlik modelleri var onlarla kıyaslamayı yapabilirsiniz elbette :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: t2 - 25 Mayıs 2010, 18:01:00
Evet hesapta yanlışlık yapmayalım. Şimdi clk frekansının 4 te birini alıyoruz komut hızı ortaya çıkıyor İSE en ucuz 18f K serisi  bir pici 96 Mhz de çalıştırabiliyorsak 96 /4 = 24MIPS etmez mi?

24 MHhz  kristal takılır mı? evet takılır demiş.
Bu frekansı da katlamaz mı evet katlar.
Eh o zaman bir tek PIcin MIPS hesabı kalıyor. o da frekansın 4 de biriydi (değişmediyse)

K serisi en cuz PIC 1.5 $ civarı. Sizin kıyasladığınız atmelin fiyatı nedir?
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Erol YILMAZ - 25 Mayıs 2010, 18:35:32
Alıntı yapılan: t2 - 25 Mayıs 2010, 18:01:00
...en ucuz 18f K serisi  pici alıyorum 96 Mhz de çalıştırıyorum 96 /4 = 24MIPS eder... 

bu pic hangi pic :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: t2 - 25 Mayıs 2010, 18:39:35
İnanın bilmiyorum bilsem söylerim. ama adamın dediği tarihte bakmıştım. 48 Mhz olarak zaten çoğu çalışıyor ona şüphe yok. 18f14k50 çalışıyor. Mesajı düzelttim. ben 48 de çalıştırdım.  96 yı kendim denemedim
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: gevv - 25 Mayıs 2010, 18:41:31
googlede bir şeyler var;

http://books.google.com.tr/books?id=NPSQShtCQaUC&pg=PA448&lpg=PA448&dq=pic+96+mhz&source=bl&ots=Dzcc_LXWYC&sig=h4LA0KrhfVQL_EuhGvpq1qkVbFg&hl=tr&ei=2e77S_KpKMiy4QbI1qmnAg&sa=X&oi=book_result&ct=result&resnum=2&ved=0CCAQ6AEwAQ#v=onepage&q&f=false

Alıntı YapFigure 8.23 shows part of the PIC18F4550 clock circuit. The circuit consists of a
1:1 – 1:12 PLL prescaler and multiplexer, a 4:96MHz PLL, a 1:2 – 1:6 PLL postscaler,
and a 1:1 – 1:4 oscillator postscaler. Assuming the crystal frequency is 8MHz and
we want to operate the microcontroller with a 48MHz clock, and also remembering
that a 48MHz clock is required for the USB module, we should make the following
choices in the Edit Project option of the mikroC IDE:
Set _PLL_DIV2_1L so the 8MHz clock is divided by 2 to produce 4MHZ at
the output of the PLL prescaler multiplexer. The output of the 4:96MHZ PLL
is now 96MHz. This is further divided by 2 to give 48MHz at the input of
multiplexer USBDIV.






http://www.3dreplicators.com/cgi-bin/cblog/index.php?/archives/373-Digging-into-the-18F4550.html


Alıntı Yap

The 18F4550 has a peculiar handling for clock speeds. It's very nice but a bit complicated. Microchip wanted you to be able to run high speed USB comms regardless of how fast you want to run your chip and they didn't want you to have to install two crystals, one for the CPU and one for the USB.

Here is what they did. The chip has an internal clock which runs at 4 MHz or you can install a faster crystal. That's nothing unusual. What happens after that is unusual. The 18F4550 has a prescaler which cranks whatever crystal speed you utilize up to 96 MHz and then one postscaler for the CPU and another for the USB. If you postscale for the CPU you can divide that 96 MHz for a maximum CPU speed of 48 MHz, which is what I did.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: t2 - 25 Mayıs 2010, 18:43:08
4550  gibi serilerle K serisini karıştırmayın. K olanlar daha hızlı çalışabiliyor. katalog bilgisine güvenip yüksek hız elde edilecek.
http://techtrain.microchip.com/webseminars/documents/PIC18J_090909.pdf
buraya bakarsak 16MIPS demiş  neden öyle dmiş acaba ? kristali yüksek taksak frekans ve mIPS yükselir. ve de  o picler bunu sağlayabilir kanaatindeyim. deneyen adam öyle diyordu. Bunları kullanabilirseniz DSPye ihtiyacınız yok  diyordu.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 25 Mayıs 2010, 19:41:22
Alıntı yapılan: FxDev - 25 Mayıs 2010, 19:32:49
Bugün AVR Studio'yu indirip bir iki kurcaladım, bir pinden led yakıp söndüreyim dedim, anam ağladı (lafın gelişi tabi).
Sanırım AVR'de birinci kural maskeleme yapıp pinleri ona göre yönlendirme, yanılıyor muyum?

Evet FxDev hocam. Maskeleme gerekiyor. PIC'teki gibi RB0=0 diyemiyoruz. Aslında PIC dışında bi çok MC'de böyle. Ama böyle küçük ayrıntıları aşınca işin PIC'e program yazmaktan farkı kalmıyor herşey kolaylaşıyor.
Eğer bit işiyle uzun uzun uğraşmak istemiyorsanız. Kodunuz başına şu makroyu ekleyip kullanabilirsiz mesela:#define SetBit(port,bit) port |=  _BV(bit)
#define ClrBit(port,bit) port &= ~_BV(bit)
//yada daha açık haliyle
#define SetBit(port,bit) port |=  (1<<bit)
#define ClrBit(port,bit) port &= ~(1<<bit)


Daha sonra SetBit(PORTD,7);
ClrBit(PORTB,6);


şeklinde kullanabilirsiniz.

Saygılar...

Ekleme:
Hocam bildiğim kadarıyla sizde HI-TIDE'de kod yazıyordunuz. AVR Studio yerine Eclipse IDE indirip AVR-GCC ile kullanabilirsiniz. HI-TIDE'nin neredeyse aynısı, hiç zorluk çekmezsiniz.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 25 Mayıs 2010, 19:51:13
Alıntı yapılan: FxDev - 25 Mayıs 2010, 19:49:05
Alıntı yapılan: Elektroemre - 25 Mayıs 2010, 19:41:22
Hocam bildiğim kadarıyla sizde HI-TIDE'de kod yazıyordunuz. AVR Studio yerine Eclipse IDE indirip AVR-GCC ile kullanabilirsiniz. HI-TIDE'nin neredeyse aynısı, hiç zorluk çekmezsiniz.

Çok kısa yapmam gereken nedir bunu gerçekleştirebilmek için?
Zaten şu an WinAVR kurulu olduğundan AVR-GCC'ye sahibim sanırım, eclipse'de şu an iniyor, peki sonra?

Hocam şu linli incelerseniz size yardımcı olur:
http://berik.net/forum/index.php?topic=14.0 (http://berik.net/forum/index.php?topic=14.0)

Saygılar...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 25 Mayıs 2010, 20:03:12
Ben 4 aydır uğrıyorum Atmel'le, şimdiye kadarki projelerimin hepsinde delayları böyle kullandım ve şimdiye kadar bi yamuğunu görmedim. Ayrıntı için AVR-GCC'nin manual kısmana göz atabilirsiniz, orada sadece yüksek hızlarıda belli bir değere kadar doğru çalıştığından bahsediyordu sanırım. En güzeli küçük bir örnek yazıp isis'te konrol etmek tabi

Saygılar...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 25 Mayıs 2010, 20:03:23
Alıntı yapılan: FxDev - 25 Mayıs 2010, 19:58:09
İşin garibi ben o sitenin takipçisiyim, nasıl görememişim anlamadım.
Bugün bir deneme yapıp, bir örnek sunayım, ayrıca _delay_ms(xx) gibi bir kaç fonksiyon kullandım, bu kütüphaneler sağlam mıdır?

Açıkçası o kütüphanenin sağlam olmadığını düşünüyorum. Yada kullandığım isisin osilaskopunda sorun var ikisinden biri :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 25 Mayıs 2010, 20:17:24
Bu arada@FxDev eğer eclipsede ilk derlemelerinde kod çok kabarıksa şu ayarı kontrol et:

(http://img327.yukle.tc/images/34622505a.jpg)

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...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 25 Mayıs 2010, 20:34:11
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...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: 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ı :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Sepiroth - 25 Mayıs 2010, 21:07:34
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:)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: gevv - 25 Mayıs 2010, 21:19:34
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
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: 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 ?
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: 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????
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: serdararikan - 25 Mayıs 2010, 23:15:11
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.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: serdararikan - 25 Mayıs 2010, 23:17:50
mesela PORTD nin 7. bitini 1 yapmak için

PORTD=(1<<PIND7);


şeklinde bir kullanılabilir.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 25 Mayıs 2010, 23:33:30
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 :)

(http://img63.imageshack.us/img63/3486/sinedt.jpg)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: XX_CİHAN_XX - 25 Mayıs 2010, 23:41:23
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...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: serdararikan - 25 Mayıs 2010, 23:47:06
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!!)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: 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?
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 26 Mayıs 2010, 10:55:55
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 (https://www.picproje.org/index.php/topic,28431.30.html)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: papylon - 26 Mayıs 2010, 14:35:29
Sanırım becerdim arkadaşlar, Teşekkürler. :)
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: serdararikan - 26 Mayıs 2010, 14:51:22
bu Eclipse Galileo C/C++ tam olarak ne işe yarıyor???
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: Elektroemre - 26 Mayıs 2010, 14:57:00
Alıntı yapılan: serdararikan - 26 Mayıs 2010, 14:51:22
bu Eclipse Galileo C/C++ tam olarak ne işe yarıyor???

Eclipse bir IDE, AVR-GCC derleyicisini bu IDE'a entegre edip kullanıyoruz. Kullanım kolaylığı sağlıyor. İsterseniz AVR Studio gibi farklı alternatifleride kullanbilirsiniz ama derleyicimiz hep aynı 'AVR-GCC'.

Saygılar...
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: serdararikan - 26 Mayıs 2010, 15:36:17

[/quote]
Bugünlerde en sık kullandığım özelliği ise ctrl+boşluk tuşu na bastığınızda fonksiyonlarınızı göstermesi. Ya da ctrl ile fonksiyon ismine tıkladığınızda fonksiyonun yazılı olduğu alana sıçraması..
[/quote]


bu özellik çok iyiymiş.hep düşündüğüm şey buydu.bir visual basic kullanıcısı olarak kafamdan hep öyle bir editör olmalıki benim yazdığım fonksiyonları ben kodu yazarken bana göstersin parametrelerini hatırlatsın ve bende böylece kendime güzel bir kitiphane oluşturabileyim...
sanırım buna yakın bir özellik.henüz indirmedim ama indirip deneyecem.bilgi için teşekkürler
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: muhittin_kaplan - 26 Mayıs 2010, 22:34:27
hiteck de var bu "." ya bastığınızda çıkar vb de
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: serdararikan - 26 Mayıs 2010, 22:41:40
Alıntı yapılan: muhittin_kaplan - 26 Mayıs 2010, 22:34:27
hiteck de var bu "." ya bastığınızda çıkar vb de
nasıl yani??
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: F493 - 26 Mayıs 2010, 23:23:45
Selam,

  Bu Hi-Tech, AVR veya VB'nin özelliği degil editörün özelliğidir. Örnegin Visual Studio çok gelişmiş bir IDE dir. Editörü kopyalama, arama vb. işlemlerde ciddi kolaylıklar sağlar. MPLAB'ında bazı özellikleri vardır.
örneğin ;
-> Structure(yapılar) tanımladığınızda içindeki elemanlara MPLAB "EDİTÖRÜNÜN" desteği sayesinde ulaşabilirsiniz.
-> örnegin bir değişken adını proğram içinde kullanacağınız yerde CTRL + ALT OK yaparsanız tüm değişken ve registerlar görüntülenir. CTRL + SPACE yaptıgınızda değişkeninizin ismini  editör otomatik olarak tamamlar.

Ve dahası...

Esen kalın.
Başlık: Ynt: 12 MHz'de çalışan AVR'nin yapabildiklerine bakın!
Gönderen: muhittin_kaplan - 27 Mayıs 2010, 13:59:42
doğrudur. dille değil IDE ile alakalıdır bu kolaylıklar.