Arduino Meclisi: IO kayıtları


13

Soru: Programlama için montaj kullanırken Arduino Uno'daki IO'ya erişmek için hangi kayıtları kullanıyorum?

Arka plan: Montaj dili becerilerimi Arduino'da uygulamakla ilgiliydim (LED'leri açmanın / kapatmanın konsol IO'su hakkında endişelenmekten daha kolay olacağını düşündüm). Ön arama yaparak , AVR araç zincirinin Arduino'yu programlamak için kullanılabileceğini buldum. Ancak, IO pinleri için ilgili kayıtları nasıl bulacağımı tam olarak bilmiyorum.

Yanıtlar:


8

AVR mikrodenetleyicilerinin veri sayfalarının okunması oldukça iyidir. Sadece Arduino'nuzdaki kesin kontrolör için Google (örn. ATmege328) ve atmel.com web sitesinde "Tam" veri sayfasını bulun . "Özet" i indirmeyin, çok fazla bilgi içermez. Veri sayfasını en son belgelere sahip tek yer olan atmel.com adresinden indirin.

Temel G / Ç'de kullanılan üç kayıt vardır ("G / Ç Bağlantı Noktaları" adlı bölümü kontrol edin):

Nerede n bir liman kimliğidir, A, B, C arasında değişen bir mektup ... IO sayısına bağlı Denetleyiciniz sahiptir pimleri. Her kayıttaki her bit tek bir GPIO pinini temsil eder (evet, bunu tam olarak anlamak için ikili temel bilgilere ihtiyacınız vardır).

  • DDR n , Veri Yön Kaydı: Bu, temel olarak giriş (0) veya çıkış (1) için bir pim yapılandırır.
  • PORT n , Port n Veri Kaydı: Bir pin çıkış olarak ayarlandığında, ilgili bit çıkış pinini yüksek (1) veya düşük (0) değiştirir. Giriş olarak yapılandırıldığında, çıkış piminde zayıf bir çekme direnci sağlar.
  • PIN n , Port n Giriş Kaydı: Giriş olarak yapılandırılmış bir pimdeki geçerli düzeyi okumak için bu kaydı kullanın.

3
Bu. Adım 1: Bunu bir arduino olarak düşünmeyi bırakın. Değil. PCB üzerindeki bir ATmega MCU. 2. Veri sayfasını okuyun. 3. Hayır , veri sayfasını okuyun .
Connor Wolf

Ah ... tam da ihtiyacım olan buydu. Ben sadece Arduino hedefli öğreticiler aramak için çok zaman harcadım düşünüyorum, ben sadece bir AVR denetleyicisi programlamak unuttum ve veri sayfasını kullanabilirsiniz.
apnorton

1

Şuna bir göz atın: http://arduino.cc/en/Reference/PortManipülasyon

Ayrıca: http://arduino.cc/en/Hacking/PinMapping168

Diğer bağlantı noktalarına ve pimlere gelince, kontrol cihazınızın veri sayfasını kontrol edin, onları anlayabilen insanlar için gerçekten yararlıdır! :)


3
Bağlantıların bir havuzunu oluşturmaya çalışmadığımız için yalnızca bağlantı cevapları site için yararlı değildir. Dahası, bağlantı sadece cevap gelecekte bağlantı koparsa işe yaramaz. Yanıtın içindeki içeriği özetlemek veya yorumlamak daha iyi olur, böylece kullanıcılar burada ihtiyaç duydukları şeyi kendileri bulabilir veya en azından çözümleri kendileri bulabilmek için yeterli bağlam elde edebilirler.
asheeshr
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.