AVRSH: Een tolk opdrachtshell voor Arduino/AVR. (2 / 6 stap)

Stap 2: Lezen en schrijven van Registers


De AVR Shell hoofdzakelijk tot sommige sensoren die ik had aangesloten op mijn AVR werd geschreven. Het begon met een eenvoudige LED dan verplaatst naar licht sensoren, temperatuursensoren, en tot slot aan twee ultrasoon transducers. avrsh kunt de digitale componenten van deze sensoren door te schrijven naar de registers waarmee ze instellen.

Manipuleren van AVR registreert tijdens het hardlopen
Om een lijst van alle bekende registers op je Arduino, typt u:

 print registers 

en je krijgt een afdruk uitziet...

 I know about the following registers: TIFR0 PORTC TIFR1 PORTD TIFR2 DDRD PCIFR DDRB EIFR DDRC EIMSK PINB EECR PINC EEDR PIND SREG EEARL GPIOR0 EEARH GPIOR1 GTCCR GPIOR2 TCCR0A TCCR0B TCNT0 OCR0A OCR0B SPCR SPDR ACSR SMCR MCUSR MCUCR SPMCSR WDTCSR CLKPR PRR OSCCAL PCICR EICRA PCMSK0 PCMSK1 TIMSK0 TIMSK1 TIMSK2 ADCL ADCH ADCSRA ADCSRB ADMUX DIDR0 DIDR1 TCCR1A TCCR1B TCCR1C TCNT1L TCNT1H ICR1L ICR1H OCR1AL OCR1AH OCR1BL OCR1BH TCCR2A TCCR2B TCNT2 OCR2A OCR2B ASSR TWBR TWSR TWAR TWDR TWCR TWAMR UCSR0A UCSR0B UCSR0C UBRR0L UBRR0H UDR0 PORTB root 

Om te zien hoe de individuele bits zijn ingesteld in een register, de kat of echo opdracht te gebruiken:

 cat %GPIOR0 

Ik vraag hier het opdrachtverwerkingsprogramma echo, de inhoud van het algemene doel i/o-Register #0, of weer. Opmerking het procentteken (%) voor de registernaam. U moet dit om aan te geven naar de shell dat dit een gereserveerde sleutelwoord identificeren een register. Het voorbeeld van de uitvoer uit een echo opdracht ziet er zo uit:

 GPIOR0(0x0) set to [00000000] 

De output toont de naam van het register, de hexadecimale waarde die wordt gevonden in het register en de binaire vertegenwoordiging van het register (het tonen van elke bit een 1 of 0). Gebruik de "index of" operator [] om een bepaalde bit in een register. Bijvoorbeeld, laten we zeggen dat ik wil de 3de bit een 1.

 %GPIOR0[3] = 1 

en de shell zal u een antwoord met zijn actie en het resultaat:

 GPIOR0(0x0) set to [00000000] --> (0x8) set to [00001000] 

Dont' vergeet het procentteken te vertellen van de shell je werkt met een register. Merk ook op dat door de 3de bit, dat is 4 bits in omdat het onze AVR gebruiken een op nul gebaseerde index. Met andere woorden, tellen tot de 3de bit u rekenen 0, 1, 2, 3, oftewel de 4e plaats, maar de 3de bit. U kunt een beetje op dezelfde manier wissen door een beetje op nul instellen.

Door het instellen van de bits zoals dit kunt u de werking van uw AVR op de vlieg. Bijvoorbeeld door het veranderen van de CTC timer overeenkomen met de waarde die wordt gevonden in OCR1A. Ook kun je peek in specifieke instellingen die u in uw code, zoals de UBBR waarde voor uw baud-rate moet programmatisch controleren.

Werken met DDRn, PORTn en PINn
De I/O pinnen zijn ook toegewezen aan registers en kunnen worden ingesteld op precies dezelfde manier, maar een speciale syntaxis is opgericht om te werken met deze soorten registers.

In code, er is een normaal proces voor, zeg, draaien op een LED of ander apparaat dat een digitale hoog of laag vereist. Het vereist instellen van de Data richting Register om aan te geven de pin voor uitvoer en dan het schrijven van een 1 of een 0 met de bepaalde bit in de juiste poort. In de veronderstelling dat we een LED die aangesloten op digital pin 13 (PB5) en wij willen schakelen, hier is hoe dat te doen terwijl uw AVR wordt uitgevoerd:

 set pin pb5 outputwrite pin pb5 high 

De output, naast de mogelijkheid om te zien uw LED kom op, zou er zo uitzien:

 root set pin pb5 outputSet pb5 for outputroot write pin pb5 highWrote logic high to pin pb5 

De "root is de shell-prompt die aangeeft dat het bereid is te aanvaarden opdrachten van u. De LED om uit te schakelen, zou u gewoon een lage schrijven naar de pin. Als u lezen de digitale ingang van een pin wilt, opdracht Lees. Met behulp van onze bovenstaande voorbeeld:

 root read pin pb5Pin: pb5 is HIGH 

Alternatief, enkel echo het pin-register dat die pin poort besturingselementen. Bijvoorbeeld, als wij hebben de dip-schakelaars aangesloten op digital pin 7 en 8 (PD7 en PD8), kon u de opdracht verzenden:

 echo %PIND 

en de shell zou dan wordt de inhoud van het register, tonen u alle van de Staten van de input/output van de aangesloten apparaten en of de stand van de schakelaar in- of uitschakelen.

Gerelateerde Artikelen

Hoe zet uw smartphone aan een generieke shield voor Arduino

Hoe zet uw smartphone aan een generieke shield voor Arduino

Hallo jongens, ik ben een van de makers van 1Sheeld, het is een mobiele app en een bestuur dat uw smartphone in een open platform voor Arduino verandert.OnderdelenArduino Uno 19,99 dollar1Sheeld $54.94Breadboard, springpaarden, LEDsHet idee is eigenl
Bouwen van een ISP-Shield voor Arduino

Bouwen van een ISP-Shield voor Arduino

dit Instructable is voor de instructies van de bouw voor onze nieuwe AVR ISP Shield Kit voor Arduino. Haar ontwikkeling heeft veel te danken aan Instructables en onze eigen Gemeenschap (met name Nick!) en ik hoop om uit te leggen wat van die langs de
Android telefoon gebruikt als een GSM-shield voor arduino

Android telefoon gebruikt als een GSM-shield voor arduino

hier mijn een andere video toont het gebruik van app uitvinder en bluetooth communicatie interface een arduino board en een Androïde apparaat. Ditmaal ben ik laten zien hoe de SMS-functie gebruiken om te zetten van de telefoon in een gratis GSM shiel
Hoe maak je een nuttige Photoreflector voor Arduino

Hoe maak je een nuttige Photoreflector voor Arduino

Dit is een hoe te maken van een handig photoreflector voor de Arduino.Photoreflector is een sensor die is wordt vaak gebruikt voor lijn tracer.Stap 1: ToolsSoldeerboutSoldeer (1.0 mm)NipperStap 2: materialenPhotoreflector LBR-127HLD, 50JPY180 Registo
Maak een breadboard adapter voor uw AVR microcontroller

Maak een breadboard adapter voor uw AVR microcontroller

als je wilt spelen rond met micro controllers weet je deze drukte: U wilt testen een deel van een programma en moet u eerst volledig kabellengte tot de uC op het bord brood.Niet met deze handige onderdelen meer!Dit zijn de volledige programmeerbare m
Zet een potlood tekening in een capacitieve sensor voor Arduino

Zet een potlood tekening in een capacitieve sensor voor Arduino

wist je dat?  Kun je potlood tekeningen reactieve raken voor gebruik met uw projecten!  Het is echt makkelijk, en geeft u veel flexibiliteit bij het maken van interfaces voor welke microcontroller project u aanbrengt.Ik samen te stellen dit als onder
Het kiezen van een ATmegaX8 variant voor Arduino-type projecten

Het kiezen van een ATmegaX8 variant voor Arduino-type projecten

bij het doorlezen van de Digikey en Mouser aanbiedingen voor ATmega328 chips, er zijn enkele subtiele verschillen die niet blijkt uit de aanbiedingspagina. Het is gemakkelijk om te kiezen tussen een 168 en een 328 chip, maar wat over de letters na di
Waterniveau Sensor Module voor Arduino AVR ARM STM32 STM8

Waterniveau Sensor Module voor Arduino AVR ARM STM32 STM8

Proficiat aan het team van ICStation ! Zij hebben deze prachtige waterniveau Sensormodule ontwikkeld door grote inspanningen. Deze module met klein formaat en hoge kosteneffectieve is makkelijk te gebruiken. In dit artikel, zullen we de digitale gehe
Hoe maak je een veilige voeding voor arduino met 9 volt batterij

Hoe maak je een veilige voeding voor arduino met 9 volt batterij

U moet een 9V batterij clip (module aansluiting), een 2.1mm stekker, een soldeerbout en wat soldeer. Elke hobby winkel moet deze items.Stap 1: een stabiele (geregeld) 5V DC, die ofwel u via de USB-elektrische leidingen, of via de schild-connectors op
Een geavanceerde benadering van programmering van Arduino & AVR

Een geavanceerde benadering van programmering van Arduino & AVR

Dit instructable is een must read voor iedereen die vertrouwd is met core AVR chips en Arduino.Nou, om meer specifieke, bij het lezen van de instructable, zal u zitten kundig voor:1) weten het juiste verschil tussen AVR en Arduino.2) programmering Ar
Hack een Toaster Oven voor Reflow solderen

Hack een Toaster Oven voor Reflow solderen

als ik ernstiger in mijn elektronica hobby krijgen, ik moet werken met meer SMD componenten. Sommige onderdeelpakketten zijn zeer moeilijk of onmogelijk om te solderen met een traditionele soldeerbout. U kunt dit probleem oplossen, besloten heb ik om
Bouwen van Android Bluetooth App voor Arduino

Bouwen van Android Bluetooth App voor Arduino

Hallo, ga vandaag ik om een android app voor arduino Bluetooth module HC-06 te maken. Via deze app kunt u een lichte of led formulier uw Androïde telefoon. Kunt doen...Stap 1: Ga naar Android editorGa naar MIT App uitvinderLink: http://appinventor.mi
Stapsgewijze LCD bedrading (4 Bit modus) en voorbeelden van de programmering voor Arduino

Stapsgewijze LCD bedrading (4 Bit modus) en voorbeelden van de programmering voor Arduino

dit instructable zal gids een gebruiker stapsgewijze in bedrading en programmering van een Hitachi HD44780 (of compatibele) chipset LCD-scherm aan een Arduino, met behulp van de LiquidCrystal-bibliotheek. Programmering voorbeelden gegeven voor alle o
Relais boord voor Arduino voor minder dan $8.

Relais boord voor Arduino voor minder dan $8.

Hallo vrienden, vandaag ga ik om u te vertellen hoe maak je een relais boord voor Arduino voor minder dan $8. In dit circuit gaan we niet IC of transistor te gebruiken. Dus, laten we het doen!Stap 1: Verzamel de onderdelen- Stap 2: Verzamelen de extr