avatar_fatih88

avr c ile atmega328p programlama öğrenelim

Başlatan fatih88, 25 Eylül 2017, 22:24:04

fatih88

hocam yanlış anlamayın ama bunu biraz daha geliştırmeliyiz hep birlikte daha estetik bir şey çıkarabiliriz
şu an üzerinde uğraşıyorum hazır kütüphaneler oluşturmaya pic c de fena değilim üst seviye yazabiliyorum ama avr daha yeni sırf ardunio ya tepkim yüzünden hem öğrenecem hemde öğrete bilirsem öğretecem tabi hocalarımla beraber:)
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

karacan451


est32

#17
Ben de bir aralar smd atmega8 ve 57mm led display ile uzaktan kumandalı alarmlı duvar saati için PCB çizmiştim. Sırf bu bahane ile C diline başlarım sanıyordum ama bir türlü giriş yapamadım. Aslında onun üzerinden gitsek hep beraber öğrenebilir, kendimizi geliştirebilir miyiz? Çünkü sadece örnek ile olmuyor, bir cihaz yapmaya çalışarak öğrenilebiliyor.
Açıkçası çizimime de pek güvenmiyorum, hataları geçtim çoğu kişiye ters gelebilecek bir yapısı var PCB nin.
Kim ne düşünüyor, ortak bir proje üzerinden gitsek daha mı iyi olur? Daha iyi bir fikri olan var mı?
Devreyi ekledim, belki fikir verir.

fatih88

Sayın est32 biz daha led yak söndür aşamasındayız saat derece yapmak için baya yol katetmeliyiz çünkü işim içine onewire twi(atmelin I2c)si sonra timer olacak bence saat devresi için çok erken
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

a.zorba

araya girmek istemem  ama yazmadan gecemeyecegım  şu saatden sonra 8 bit atmega lar ı ogrenmeye   ugraşmak özel bir sebeb i yoksa çok mantıklı degil . bazı artılar ı olmasına ragmen pic den farklı degil . emek verecekseniz  stm32f ler e geçin  kendimden biliyorum az bir C bilgisi ile bile çok güzel işler çıkıyor .
benimkisi naçizane tavsiye işlemci kavgası çıkarmak degil.
artılar ı:
1* program lama alternatifi çok fazla st link v2 ve hatda yalnızca comport dan usart ile 3v3 ,gnd,  rx, tx.
2* asm tabanlı yazabilecegin gibi st lib ,hal lib ve arduino ile bile kod yazabilirsin
3* atmel ile neredeyse aynı fiyat
4* derleyicler ideler vb . beleş
5* teknik artılar ı konuşmaya bile gerek yok.   


fatih88

Sayın a.zorba bizim amacımız esasında o mcu bu mcu değil şimdi şunu sorayım 8 bitlik işlemcide bu güne kadar ne yapmak istedinde onu yapamadın benim amacım C bilgisi azda olsa bilen kişilerle farklı mcu proğramlamak sözlerim yanlış anlaşılmasın aramızda illaki üst düzey yazılım yazanlarımız vardır ama 8 bitlik mcu bana göre yeterli daha tam olarak belki pic mcu ları bile çözememiştiriz bakın saygı değer ete hocamız basicten vazgeçemediği için alanında çok başarılı basıc dilini iyi kullanıyor bence bütün mcu 'lara hemen atlamamak  gerekli birinin temelini iyi oturtursak gerisi geliyor zaten avr yazmaya 10 gün önce başladım azda olsa bir şeyler cıkarabildim mühim olan ansi c bilmek ve datasheet okuyabilmek inşallah ilerde arm de öğreniriz
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

a.zorba

yukarda belirtdigim gibi amacın nızah cıkarmak degil az c bilgisi ile yukardakı işlemci çok kolay programlanıyor .
yapamadıgım genel amaçlı modbus RTU crc kontrol . (belki yapılmışdır ben yapamadım )

fatih88

arkadaşlar avr c de biraz makro çalışması yaptım işimizi çok kolaylaştırıyor bundan sonraki yazılımlarda bu makroyu kullanarak yazacammakronun içindeki hazır fonksiyonlar şöyle

high(); belirlediğiniz pini 1 yapar
low(); belirtilen pini 0 yapar
toggle();belirttiğimiz pini seçmiş oldugumuz sürede 1ve 0 yapar
output();istediğimiz pini çıkış yapar
input();istenilen pini çıkış yapar
pin_oku();giriş olarak pini kontrol eder true veya false olarak döner
bit_set();değişken icindeki istenilen biti 1 yapar
bit_clear();değişken icindeki istenen biti 0yapar
bit_test();değişken icindeki bitin 0 mı 1mi oldugu ile geri döner
make8();16 bitlik değişkeni 8 bite dönüştürür parametre ile iki farklı değişkene kaydedilebilir
make16();iki adet 8 bit değişkeni 16 bite çevirir 16 bitlik değişkene kaydeder

esasında avr c yi biraz ccs c ye yaklaştırmaya çalıştım eminim çok işe yarayacaktır ccs c bilen arkadaşlar az bir uğraşla atmel yazacaktır makro çalışmaları yaparak kütüphanemi geliştirmeye çalışacağım
umarım işinize yarar iyi çalışmalar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

fatih88

kendi kütüphanemizle 74hc595 ile led animasyon projesi
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

fatih88

#24
arkadaşler adc okumayıda hallettim ve fonksiyon haline getirdim
fonksiyon içeriği:
adc_init(prescal_2,avcc_external,onbit)bu fonksiyonla adc bölme oranı referan noktası biz vccyi seçtik ve deger 8 bitmi dönecek 10 bitmi dönecek onu belirlrdik

prescal_128 anlamı kullandıgımız osc 16mhz olsun 16/128=0,125=125khz okuma hızımız oluyor

avcc_external bizim okunan değerimizi kimle karşılaştırayım diyor biz vcc yi sectik

onbit  okunan degerin max:1023 olarak dönmesi için

sekizbit okunan degerin max:255 olarak dönmesi için

header file içerisinde diğer komutlar mevcut incelene bilir

gelen=adc_oku(1) anlamı pc1 den anolog veriyi al gelen değişkenine ata
işlem bu kadar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

fatih88

arkadaşlar avr c ile program yazmanın son dersini yayınlıyorum çok fazla ilgi olmadıgı için dersleri burda bitiriyorum
son ders olarak atmega328p ile pot ile motor hızını ayarlama ve ır2102 nasıl kullanılacağını gösterdim neden 2pwm kullandım
ır2102 gate voltajını sabit tutabilmesi için c1 kondansatörünü sörekli dolu tutması gerekiyor bunun içinde hin=1 ken lin=0 olmalı
hin=0 ken lin=1 olacak ve kondansatör sürekli dolu kalabilecek eğer bu şekil sürmez isek kondansatör bir süre sonra boşalacak ve mos ısınacak ve delinecektir
herkese iyi calışmalar
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

est32

Ben konuyu takip ediyordum. Yalnız iş güç yüzünden proje ile ugrasamadim ve katkıda bulunamadim. Umarım fikriniz değişir ve paylaşıma devam edersiniz

COTYORA


fatih88

avr c atmega328p eeprom kullanımı ve sayıcı devresi
bilgi paylaştıkça çoğalır!!

www.fayelektronik.com

COTYORA

#29
hocam  çok teşekkürler
atmega328 de  4  kanal pwm çıkartıyor buna yönelik bir  uygulama yapabilrmiyiz..

Powered by EzPortal