Picproje Elektronik Sitesi

MİKRODENETLEYİCİLER => Atmel => Konuyu başlatan: ds01 - 23 Ocak 2016, 13:33:57

Başlık: Atmel Programlama Hakkında
Gönderen: ds01 - 23 Ocak 2016, 13:33:57
Atmel programlama ile ilgili birkaç sorum olacak.Siz ustalarımın yardımlarını bekliyorum.

Benim elimde şu an arduino var üzerindeki atmega328p yi çıkarıp arduino ide si ile değilde atmel studio(avr c) ile programlamak istiyorum.

1-)Atmel studio ile arduino idesi ile programlamam  arasında ne fark var? (Entegredeki Hız,performans vs.)
2-)Atmega içerisindeki bootloaderi silmek mi lazım avr c de  kullanabilmek için?
3-)Bu bootloader yavaşlığa mı sebebiyet veriyor?
Başlık: Ynt: Atmel Programlama Hakkında
Gönderen: mehmet - 23 Ocak 2016, 13:54:21
1) Arduino ide de hazır kütüphaneler ve tanımlamalar olduğu için
her şey kolay. Diğer türlü her kütüphaneyi ve tanımlamaları siz
yapmanız gerekecek...

2) Zaten başka bir hex yüklerseniz her şey silinir. Sizin dikkat
etmeniz gereken sigorta ayarları...

3) Bootloader; resetten sonra bir süre bekler, program atılıyor
mu diye. Bu sadece resetten sonraki yavaşlıktır. Yoksa Arduino
16MHz.(16Mips) olarak çalışmaktadır...
Başlık: Ynt: Atmel Programlama Hakkında
Gönderen: ds01 - 23 Ocak 2016, 14:35:37
Alıntı yapılan: mehmet - 23 Ocak 2016, 13:54:21
1) Arduino ide de hazır kütüphaneler ve tanımlamalar olduğu için
her şey kolay. Diğer türlü her kütüphaneyi ve tanımlamaları siz
yapmanız gerekecek...

2) Zaten başka bir hex yüklerseniz her şey silinir. Sizin dikkat
etmeniz gereken sigorta ayarları...

3) Bootloader; resetten sonra bir süre bekler, program atılıyor
mu diye. Bu sadece resetten sonraki yavaşlıktır. Yoksa Arduino
16MHz.(16Mips) olarak çalışmaktadır...

mehmet hocam çok teşekkür ederim verdiğiniz bilgiler için

mesaj birleştirme:: 23 Ocak 2016, 14:53:03

Peki hocam atmel studioda yapılan bir uygulamayı yada kütüphaneyi arduino ide  içinde kullanabilirmiyim 
Başlık: Ynt: Atmel Programlama Hakkında
Gönderen: mehmet - 23 Ocak 2016, 16:33:49
Ufak tefek değişikliklerle kullanmak mümkün olabilir...
Başlık: Ynt: Atmel Programlama Hakkında
Gönderen: Kabil ATICI - 23 Ocak 2016, 18:17:11
Arduino yavaşlığı konusunda, biraz lafa karışacağım, kusura bakmayın.

Normalde Arduino çalışmasını ram üzerinde konusu ile ilgili olarak ayrılmış tamponlar üzerinden yürütüyor.
Yani en basitinden siz
digitalWrite (1,LOW);
komutunu (fonksiyonunu) işleme koyduğunuzda işlemci bunu bir yığın komut ile yerine getiriyor... (1. nolu bacağı lojik 0 seviyesine çeker).
void digitalWrite(uint8_t pin, uint8_t val)
{
uint8_t timer = digitalPinToTimer(pin);
uint8_t bit = digitalPinToBitMask(pin);
uint8_t port = digitalPinToPort(pin);
volatile uint8_t *out;

if (port == NOT_A_PIN) return;

// If the pin that support PWM output, we need to turn it off
// before doing a digital write.
if (timer != NOT_ON_TIMER) turnOffPWM(timer);

out = portOutputRegister(port);

uint8_t oldSREG = SREG;
cli();

if (val == LOW) {
*out &= ~bit;
} else {
*out |= bit;
}

SREG = oldSREG;
}


tabii bu kadar işlem için işlemci yavaşlık olarak geri dönüyor.
normalde  bu atmel işlemcide yanlış hatırlamıyorsam portd üzerinde pd1 pinine denk düşerki bu işlemi
PORTD &=0x01;
ile yerine getirebiliriz. (Tabi aynı şey arduino üzerinde de yapılabilir.)

Bu sadece bir örnek, daha programlamada neler olduğunu kütüphaneleri inceleyerek görebilirsiniz.