2011-05-09 17 views
24

Gömülü sistemlerin programlanmasında bir arka planım var (TI MSP430, Atmel ATxmega). Bir Arduino’yu programlama bundan farklı mıdır? Arduino'yu programlamak için C ile ilgili hangi bilgileri alabilirim? Bu her programa yerleştirilir dışındaBir Arduino nasıl programlama standart C'den farklı?

+0

C++ etiketi kaldırıldı, çünkü bu tamamen C'dir. – Xeo

+3

Üzgünüz, bu örnekte burada bulunduğum için http://www.arduino.cc/en/Hacking/LibraryTutorial öğesinin C++ – Nathan

+1

nedenini anlamıyorum. C++ etiketi kaldırıldı. Arduino kütüphaneleri genellikle C++ sınıflarıdır. (Doh! Iki yaşında yorumlar: -P) –

cevap

34

ATXMega'yı bilmeme rağmen, yeni Arduinolarda kullanılan ATmega328 gibi 8 bit AVR çipleri AVR-GCC derleyicisini kullanır. Bu, C ve hatta C + + bir AVR çipine derleme sağlar. AVR-GCC'nin bir üst seviyesi, AVR için daha üst düzey bir görevi programlama yapan bir C kütüphanesi olan AVR Libc'dur (artık kayıtlara doğrudan başvurmak zorunda değil, vb.).

Arduino IDE, arka uçtaki AVR-GCC ve AVR libc kitaplığını kullanır. Buna ek olarak, Arduino IDE, güzel bir Seri arabirim gibi other libraries available'u yapar. Son olarak, Arduino AVR çipinde yakılmış bir ön yükleyici ile birlikte gelir. Önyükleyici, AVR'yi bir In-Sytem Programmer veya Geliştirme Kartı yerine bir seri bağlantı (USB'den) kullanarak programlamayı mümkün kılar.

Yeterli arka plan, sorunuzu cevaplamak için: Arduino, C ve hatta C++ olarak programlanabilir. Mevcut kütüphaneler C ile yazılmıştır ve her şey AVR-GCC kullanılarak derlenecektir. Arduino IDE bile gerekli değildir.

Düzenleme

bu konuya ilgiyi iyi bir miktar gibi görünüyor. Denemek ve more in-depth details on the AVR, Arduino, and AVR-GCC vermek için bir blog yazısı yazdım.

+1

kütüphaneleri C++ ile C++ –

+0

olarak yazılmıştır. Eclipse projesinin repo silindi. – oldmud0

+0

@ oldmud0 Teşekkürler, GitHub repo'unu bir noktada silmiş olmalıyım. Referansı Eclipse projesine cevabından kaldırdım. – baalexander

4

Arduino C geçerli:

void main() { 
    setup(); 
    for(;;) { 
    loop(); 
    } 
} 
+7

'void' ana?;-) –

+3

Arduino, C'den daha fazladır, [(+) alt kümesidir.] (Http://en.wikipedia.org/wiki/Processing_%28programming_language%29#Wiring.2C_Arduino.2C_and_Fritzing). –

+2

Arduino IDE'yi kullanırken başka bazı istisnalar da var. Örneğin, yapıyı ayrı bir .h dosyasında tanımlamazsanız, işlev çağrıları veya döndürmeleri yapıları kullanırken sorunlar vardır. Http://playground.arduino.cc/Code/Struct yazdığı gibi: Her zamanki arduino geçici çözümü/kesmek, ek bir .h dosyasına yerleştirilecek özel veri yapıları gerektiren tüm işlevlere sahip olmaktır. Sadece IDE'de yeni bir sekme oluşturun ve bir isim verin. #include "name.h" – ViennaMike

4

Sen C ve gömülü sistemler ile tüm bilgiyi hemen hemen alabilir ve Tamam daha fazla olacaktır. Hiç kullanmak zor değil. Arduino Reference sayfasını favorilere ekleyin ve hiçbir zaman yazamayacaksınız.

4

Arduino, C-benzeri ve kolayca alınması kolaydır. Temel görevleri yapmak için okuma ve yazma gibi şeyleri periferik yazmaçlara yapmaktan soyutladılar.

Bazı örnek kodlara ve Arduino referansına bakarsak, başka bir platformda gerçek C gerçekleştirdiyseniz, hiç vakit kaybetmeden çalışırsınız.

9

Arduino kullanırken mevcut C bilginizi alabilirsiniz.

amaçlı sanatçılar/olmayan programcılar donanım programlama ve müdahalesi ile kolayca başlamak için izin olduğunu, bu yüzden 'Arduino dil' sadece geliştirme sürecini basitleştiren bir sarıcı olduğunu.

Arduino kullanmak için C programcısı olarak sizin için çok daha kolay olmalı. documentation uzun bir süredir değil, wiki güzel ve kullanıcıları forum coşkulu ve yardımsever.