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

Stap 4: Andere opdrachten


Er zijn diverse andere commando's dat de standaard opdrachtinterpreter begrijpt dat u kunt nuttig vinden. Via de uitgifte helpen of menu op de prompt kunt u alle commando's uitgevoerd en toekomst-release. Ik zal snel dekken ze hier als ze meestal spreekt voor zich zijn.

CPU kloksnelheid frequentie-instellingen
U kunt nagaan wat uw firmware is geconfigureerd als de instellingen van de klok CPU met het fcpu commando gebruiken:

 root fcpuCPU Freq: 16000000 

Dat is 16 miljoen, of 16 miljoen herz, beter bekend als 16 MHz. U kunt dit op de vlieg, voor welke reden dan ook, met de klok -opdracht. Deze opdracht neemt één argument: de prescaler moet worden gebruikt bij het verdelen van de kloksnelheid van uw. De klok -opdracht begrijpt deze prescaler waarden:

  • ckdiv2
  • ckdiv4
  • ckdiv8
  • ckdiv16
  • ckdiv32
  • ckdiv64
  • ckdiv128
  • ckdiv256

Met behulp van de opdracht:

 clock ckdiv2 

Wanneer uw cpu-snelheid 16MHz is zou resulteren in uw worden veranderd tot 8 MHz. een prescaler van ckdiv64 met een initiële kloksnelheid van 16MHz kloksnelheid zal resulteren in een definitieve kloksnelheid van 250 KHz. Waarom op aarde zou u wilt uw MCU langzamer maken? Nou, voor een, een lagere kloksnelheid verbruikt minder stroom en hebt u uw MCU uitgevoerd off van een accu in de behuizing van een project u kan niet nodig hebt om uit te voeren op topsnelheid, en kon daarom lager de snelheid en vermindering van het energieverbruik, verhogen de levensduur van de batterij. Ook, als u de klok voor elk soort timing problemen met een ander MCU, zeggen, uitvoering van een software UART of zoiets, kan u wilt instellen op een bepaalde waarde, dat is makkelijk te krijgen van een aardige zelfs baud-rate met lagere foutenpercentages.

Omhoog het aandrijven en stroomvoorziening naar perifere sub-systemen
Op dezelfde notitie voor het verminderen van machtsconsumptie eerder vermeld, kan u wilt verder verminderen door het afsluiten van enkele van de on-board randapparatuur die u niet gebruikt. De opdracht-interpreter en shell kunnen momenteel macht omhoog en de volgende randapparatuur uitgeschakeld:

  • Analoog-digitaalomzetter (ADC). Dit randapparaat wordt gebruikt wanneer u hebt een analoge sensor verstrekken van gegevens (zoals temperatuur, licht, versnelling, enz) en wilt converteren naar een digitale waarde.
  • Serial Peripheral Interface (SPI). De SPI-bus is gebruikt om te communiceren met andere SPI-compatibele apparaten, zoals externe herinneringen, LED drivers, de externe ADC, enz. Delen van de SPI worden gebruikt voor ISP programmeren, of op minste de pinnen zijn, dus wees voorzichtig wanneer dit afsluiten als u via Internet-provider programmeert.
  • Twee-draads Interface. Sommige externe apparaten gebruiken de I2C-bus om te communiceren, hoewel deze snel door SPI-compatibele apparaten vervangen worden zoals SPI een groter debiet heeft.
  • USART. Dit is uw seriële interface. U wilt waarschijnlijk niet dit uitschakelen als u met de AVR via de seriële verbinding verbonden bent! Echter, ik nog dit hier als een skelet voor porten naar apparaten die meerdere USART zoals de ATmega162 of ATmega644P hebben.
  • alle. Dit argument aan de commando powerup of powerdown draait op alle van de genoemde randapparatuur of uitgeschakeld hen allemaal met één opdracht. Nogmaals, gebruik dit commando verstandig.
  •  root powerdown twiPowerdown of twi complete.root powerup twiPowerup of twi complete. 

Starten en stoppen van Timers
De shell heeft een ingebouwde 16-bits timer die beschikbaar is voor gebruik. U start de timer met de timer-opdracht:

 timer start 

en stoppen van de timer met de stop-argument:

 timer stop 

Deze timer zal niet strijdig zijn met de interne USART timer. Zie de code voor details over de implementatie van de timer USART, als dat soort bloederige detail u interesseert.

 root timer startStarted timer.root timer stopElapsed time: ~ 157 seconds 

Verificatie
De shell kan een wachtwoord van 8 tekens worden opgeslagen in EEPROM. Dit wachtwoord mechanisme is gemaakt ter ondersteuning van het aanmeldmogelijkheden telnet, maar zou kunnen worden uitgebreid ter bescherming van andere dingen. Bijvoorbeeld, kon u bepaalde opdrachten, zoals het veranderen van register waarden, via het verificatiemechanisme vereisen.
Het wachtwoord met de opdracht wachtwoord instellen:

 root passwd blahWrote root password to EEPROM 

Tegen hij wachtwoord toestaan (of vergunning via programmacode door de code vereist) met de opdracht auth.. Let op, dat als u probeert te wijzigen van de root-wachtwoord, maar er is al een root wachtwoord set, moet u machtigen zelf tegen het oude wachtwoord alvorens wordt toegestaan om het te veranderen naar een nieuw wachtwoord.

 root passwd blinkyYou must authorize yourself first.root auth blahAuthorized.root passwd blinkyWrote NEW root password to EEPROM 

Natuurlijk, moet u het bestand avrsh.eep wordt geladen als u wissen de firmware als u wilt dat uw oude waarden en variabelen hersteld. De Makefile zal het EEPROM bestand voor u aanmaken.

Variabelen
De shell begrijpt de notie van gebruiker gedefinieerde variabelen. De code beperkt dit tot 20, maar je kunt dat veranderen als u door het veranderen van het vastleggen van MAX_VARIABLES in script.h. U kunt 16-bits waarde (dat wil zeggen een getal tot 65.536) aan een variabele aan later herinnerd. De syntaxis is vergelijkbaar met registers behalve een dollarteken ($) wordt gebruikt ter aanduiding van variabelen naar de shell. Een lijst van alle uw variabelen met de opdracht Afdrukken variabelen.

 print variablesUser-defined variables:Index Name -> Value(01): $FREE$ -> 0(02): $FREE$ -> 0(03): $FREE$ -> 0(04): $FREE$ -> 0(05): $FREE$ -> 0(06): $FREE$ -> 0(07): $FREE$ -> 0(08): $FREE$ -> 0(09): $FREE$ -> 0(10): $FREE$ -> 0(11): $FREE$ -> 0(12): $FREE$ -> 0(13): $FREE$ -> 0(14): $FREE$ -> 0(15): $FREE$ -> 0(16): $FREE$ -> 0(17): $FREE$ -> 0(18): $FREE$ -> 0(19): $FREE$ -> 0(20): $FREE$ -> 0Complete. 

Set een variabele:

 $newvar = 25$timeout = 23245 

De waarde van een gegeven variabele te krijgen:

 root echo $newvar$ newvar --> 25 

U kunt zien wat alle variabelen die u momenteel hebt geïnstantieerd met de opdracht print die u al kent.

 User-defined variables:Index Name -> Value(01): newvar -> 25(02): timeout -> 23245(03): $FREE$ -> 0(04): $FREE$ -> 0(05): $FREE$ -> 0(06): $FREE$ -> 0(07): $FREE$ -> 0(08): $FREE$ -> 0(09): $FREE$ -> 0(10): $FREE$ -> 0(11): $FREE$ -> 0(12): $FREE$ -> 0(13): $FREE$ -> 0(14): $FREE$ -> 0(15): $FREE$ -> 0(16): $FREE$ -> 0(17): $FREE$ -> 0(18): $FREE$ -> 0(19): $FREE$ -> 0(20): $FREE$ -> 0Complete. 

De $FREE$ naam geeft gewoon aan dat die variabele locatie gratis is en niet is toegewezen een variabelenaam nog.

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