Şimdi Ara

ATMEL AVR ile ilgilenenler BURAYA!!! (10. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
217
Cevap
0
Favori
48.694
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 7891011
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • selamlar.

    ben avr ye merak sardım. cem hocama çok teşekkür ediyorum böyle harika ötesi bi siteyi bizlere hazırladığı için. biraz ccs c biliyorum picden. winavrdeki led yakma projesinde ;

    while(1){ //sonsuz dongu
    delay_ms(500);
    PORTB &= ~_BV(0);//PORTB0'i sıfır yap
    delay_ms(500);
    PORTB |= _BV(0); //PORTB0'i bir yap
    }
    }

    böyle bir örnek var. karmaşık gibi geldi bana. portlara direk 255 yada 0xFF atama şansımız yokmu?
  • Merhaba,

    Tabii ki PORTB=255; gibi bir ifade geçerli ancak bunun pek çok sakıncaları var. B portu üzerinde farklı pinlere bağlı olarak çalışan elemanlar olabilir. Örneğin, PB0 a bir buzzer ve PB7 ye de bir led bağlı, PORTB=255 gibi bir ifade PORTB nin tüm bitlerini 1 yapacağıdan buzzer da devreye girecek ve LED de yanacaktır. Osa biz buzzer a dokunmak istemiyorduk.

    PORTB=1 gibi bir komutun anlamı şudur: PB0 1 olsun diğer tğm bacaklar 0. Bu genellikle istenen bir durum değildir, biz tüm portun değerini değil sadece belli bir bitin değerini değiştirmek isteriz.

    PORTB&=~_BV(7); ifadesi karışık gibi gelebilir ama C diline hakim olan biri için karışık bir durum yok aslında. Buradaki tüm özellikleri inceleyelim:

    1) C dilinde x+=1 ifadesi x in kendisine bir ekle demektir ve basic'deki x=x+1 ifadesi ile aynıdır. Benzer şekilde x*=2 ise basic'deki x=x*2 ifadesine denk gelir. Bizim ifademizdeki PORTB&=a; PORTB değişkeninin kendisini a değeri ile AND'le demektir. PORTB= PORTB & a; şeklinde de düşünülebilir.

    2) _BV (bit value) bir makrodur ve _BV(3) ifadesi (1<<3) ifadesi ile aynıdır, 1 sayısını 3 kez sola kaydır (shift) demektir bunun da sonucu 0000 1000 dır. Bunu gözümüzde canlandırmak zor değil. _BV(0) ise (1<<0) ifadesine eşittir ve 1 sayısını 0 (sıfır) kez sola kadır demektir, yani 0000 0001 e eşittir. Sıfır kez sola kaydırmak, olduğu yerde bırakmaktır.

    3) ~ değil ifadesi (bitwise not) önüne geldiği ifadenin tüm bitlerini ters çevirir. ~ 0000 0001 ifadesinin sonucu 1111 1110 dır.

    Şimdi bu bilgiler ışığında PORTB &= ~_BV(0); ifadesini birlikte inceleyelim. _BV(0) ifadesinin binary 0000 0001 e eşit olduğunu biliyoruz, bunun terslenmiş halinin de 1111 1110 olduğunu öğrendik o halde ifademizi şu şekilde yazabiliriz:

    PORTB&=0b11111110; (baştaki 0b binary sayıların önüne konur, aksi halde derleyici 11 (onbir) ve 0b11 (üç) sayılarını ayırt edemez) Bu noktadan sonrasını anlamak için ise lisede mantık kousunda öğretilenleri hatırlamak yeterli.

    1 VE 1= 1
    1 VE 0= 0
    0 VE 1= 0
    0 VE 0= 0


    AND operatörüne tabi tutulan iki değerden biri 1 ise sonuç değişmiyor ama 0 ise diğer değer ne olursa olsun sonuç sıfır oluyor. Diyelimki PORTB bu işlemden önce 00110011 değerindeydi, PORTB&=0b11111110; işleminden sonra sadece sıfıncı bitte değişiklik olacak diğer bitler işlemden etkilenmeyecektir:

    00110011
    11111110
    __________ VE
    00110010

    Görüldüğü gibi PB0 bire eşitken sıfır oldu diğer bit olduğu gibi kaldı. Eğer _BV makrosunu kullanmak istemiyorum derseniz aynı ifadeyi doğrudan yazabilirsiniz:

    PORTb&=0b11111110;

    Bu arada web siteme Atmega8 sigorta ayarlarını görsel olarak yapabileceğiniz bir excel dosyası koydum, download kısmında ulabilirsiniz.

    Selamlar,

    Cem Berik


    http://www.berik.net



    < Bu mesaj bu kişi tarafından değiştirildi Avrfreak -- 20 Nisan 2008; 19:43:23 >




  • cem hocam tekrar çok teşekkür ederim. ben c diline hakim değilim. o yüzden başlarda sorun yaşayacağım muhakkak. 255 atama şansımız yokmu derken tabiki eğer 4. biti 1 yapacaksam portb=255 diyemem. portb=%00010000 desem 4. biti 1 olmazmı? adaptasyon sorunu yaşıyorum anlayacağınız. yardımlarınız için teşekkür ederim
  • PORTB=0b00010000 ifadesi PORTB'nin dördüncü bitini 1 yapar doğru ama sorun şurada diğer tüm bitleri de sıfır yapar. Eğer sadece PORTB'nin 4. pinine bir LED bağladıysanız bu şekilde kullanabilirsiniz.

    Ya da PORTB'in tüm pinleirne bir LED bağladıysanız:

    PORTB=0b10101010; ifadesi LED leri birer atlayarak yakar.

    Ama doğru kullanım bir önceki mailimde açıkladığım gibidir. Bir programlama dilini öğrenmek bol pratik ve sabır gerektirir.

    Selamlar,

    Cem



    http://www.berik.net
  • haklısınız hocam. peki sizce şimdilik proteus üzerinden simulasyon yaparak gitsem çok zararım olur mu?
  • merhabalar bende Avr kullanmaya yeni baslayanlardanim..Atmega88 ile step motoru kontrol edicem.ama bu konuda biraz sorun yasiyorum cünkü AVR ile ilgili ne yazikki yeterli kaynak yok..daha önce Pic lerlede ugrasmadim.
    yardimci olacak arkadaslara simdiden tesekkür ediyorum:)
  • ben atmel atmega 16yla l298 sürüp iki tane bi polar step motor sürüyorum yaptigim CNC de yardim ci olurum sorlarinda
  • avrfreak cem siten çalışmıyor.Abi tek türkçe kaynak oydu ne oldu sitene(www.berik.net) ???
    Bi de arkadaşlar atmel avr ile ilgili türkçe kaynak var mı nette başka ????
  • site düzelmiş :) fakat başka türkçe kaynak var mı nette????
  • Maalesef hosting hizmeti aldığım firma çok sorunlu, o yüzden sitem sıklıkla erişilemez hale geliyor. Sitenin çalışmadığının fark edilmesine çok şaşırdım ve sevindim

    Bu arada sitemde Sıkça Sorulan Sorular ve Sizin Gönderdikleriniz adlı iki bölüm açmayı planlıyorum. Bu konuda katkılarınızı bekliyorum, eğer çalışan projelerinizi kodlarını ve resimlerini gönderirseniz yayınlamaktan mutluluk duyarım. Sıkça Sorulan Sorular kısmına da bana şimdiye kadar gelen maillerden bir şeyler derleyeceğim.

    Selamlar,

    Cem

    http://www.berik.net




  • avr programlama'yı hangi arayüzlerle yapıyosunuz.
  • arkadaşlar avr ile mini sumo robot yapımına başlıyorum. bu konuda görüş, öneri ve yardımlarınızı bekliyorum.
  • Nihayet Atmel AVR ile ilgili bir kitap çıkıyor.http://www.altaskitap.com/avr/avr_kitaplari.htm
  • slm arkadaşlar ben atmel avr hakında bilgim yok ama proje dersinden usb ile pc kontrol devresini aldım
    biraz araştırdım bu devre at90s2313 devresiyle yapılıyor elimde döküman da yok ne yapacağımı bilmiyorum lütfen bana yardım edin

    ozrek.ayhan@gmail.com
  • öncelikle
    atmel
    adresinden data sheet te ulaşabilirisin.
    ve cem arkadasın cem berik
    sayfasını kullanabilirisin.
    avr sigorta hesabını sigorta hesabı
    buradan bulursun
    bir de buradakileri göz gezdir
    sorularını yaz, bilenler yardım edecektir...
    kolay gelsin




  • assembly ile yapılacak işler basit giriş çıkış işlemlerinden öteye gidemez.ileride nasıl olsa kod hamallığı yapmaktan bunalacak ve daha yüksek seviyeli kodlama arayışına gireceksiniz.Bununda en iyi yolu C' dir.
  • micro denetleyicileri öğrenmek için assembly dilini öğrenmek şart. çünkü içinde nelerin olup bittiğini anlamak için registerların, durum bitlerinin işleyişini öğrenmek için assenbly. assembly öğrendikten sonra bir yüksek seviyeli dil kullanılabilir. yüksek seviyeli dil kullanırken bile arada asm kodlara ihtiyacınız olacak. yani boşuna öğrenmişim demeyeceksiniz.
  • merhaba arkadaşlar ve merhaba cem bey. ben sizin sitenizde buulunan usbasp usb programlayıcıyı yaptım. ancak devre üzerideki avr ye program atacak programlayıcım olmadığından yine sizin sitede bulunan lpt avr programlayıcıyı da yaptım. lpt programayıcı avr ye programı sorunsuz attı ancak bilgisayar usb portdan aygıtı görmedi. fishel.de sitesinden en son versiyonu indirip onu attım yine gömedi.birde devre üzerinde avr yokken bile usb ye taksam usb aygut tanınmadı uyarısı veriyor. birkaçincelemeden sonra bu uyarıya sebep olan elemanın devredeki1.5k lık direnç olduğunu buldum ve direncin bacağını kestim hala hiçbir şekilde usb aygıtı görmüyo pcb kristal vs herşey sağlam. devreyi usb ye taktığımda kırmızı ışık yanıyo. acaba sorun ne olabilir. şimdiden teşekküler.
    eğer sorun hex dosyasıysa bu devreyi çalıştıran biri avr ye attığı hex i siteye eklerse sevinirim bu arada kullandığım avr atmega8-16pu
  • Arkadaşlar AVR 182 ile ilgili bilgisiolan payşlaşabilirmi.Datasheetine baktım birşey anlamadım. Mikrokontrolmü yoksa sıfır geçiş dedektörümü.
  • quote:

    Orjinalden alıntı: kurusaray

    Arkadaşlar AVR 182 ile ilgili bilgisiolan payşlaşabilirmi.Datasheetine baktım birşey anlamadım. Mikrokontrolmü yoksa sıfır geçiş dedektörümü.


    AVR182 entegre kodu değil uygulama notu (application note) kodu. Bu uygulama notunda atmega163 kullanılmış.
  • 
Sayfa: önceki 7891011
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.