Konstanter

Fra HTX Arduino
Spring til navigation Spring til søgning

Der findes 4 forskellige konstanter i JAL. De har hver deres type, som giver forskellen i deres anvendelse

Bit konstanter

En enkelt bit kan kun være høj eller lav / sand eller falsk / 1 eller 0, og i konstant-sammenhæng giver det mest mening at bruge den som sand eller falsk (true - false) som følger:

 const bit ppp1 = false
 const bit ppp2 = true

 const bit ppp3 = low
 const bit ppp4 = high

 const bit ppp5 = off
 const bit ppp6 = on

 const bit ppp7 = 0
 const bit ppp8 = 1

Det man så kan anvende sådan en konstant til er, hvis man vil skrive noget mere universel kode, hvor man kan slå dele af koden til eller fra, så kan man gøre det ved rette på konstanten, så vil koden blive taget med eller ej, som f.x.

if ppp then
  var byte n
  for 10 using n loop
    x = n * 2
  end loop
end if

I dette tilfælde vil for-loopen ikke blive til kode, hvis ppp er sat false, og variablen n vil ikke blive oprettet, og kan dermed ikke anvendes i koden andre steder.

Byte konstanter

En Byte består af 8 bit, og kan derfor indeholde værdier fra 0 til 255. Man kan angive konstanter både som decimale tal (0-255) hexadecimal tal (0x00 til 0xFF) binære tal (0b0000_0000 til 0b1111_1111) og som ASCII karakterer "a" - "z" og "A" - "Z"

const byte maximum = 99

Konstant array

I konstant array bliver det man skriver in lagret i programkoden i stedet for i RAM'en. Her kan man f.x. lægge en tekst som vist her:

const byte teksten [5] = {"K", "o", "d", "e", "n"}

Definitions konstanter

Den tredje har egentlig ikke et navn men det er en definition. Det er en compile-time definition. Den sidstnævnte forsvinder under omskrivningen til maskinkode (compiling).

const Baud_Rate = 9600

Det man kan bruge dem til er at teste på den, som man kan med andre konstanter, og man kan regne med dem, så man ud fra konstanten kan beregne en værdi:

time = 1000000 / Baud_Rate

Pragma konstanter

Det sidste eksempel på en konstant er nogle der hænger sammen med selve compileringen. Sidst nævnte type herunder:

pragma target clock 4_000_000


Programmering
Programmeringsbegreber Initialisering - Sekvens - Algoritme - Hexadecimal - Det Binære Talsystem - HEX-fil - ASCII - Interrupt - Events - Styresystem - Autocomplete - Selvstudie Programmering - Hour Of Code - Stepwise Improvement - Syntaks - Prog-links - Microcontroller - ChatGPT
Grundlæggende C C float - C double - C-løkker - Datatyper - Konstanter - Regnearter - Funktioner - Return - Returværdi - Rekursion - Semikolon
Variabel Typer boolean - byte - int - unsigned int - word - long - unsigned long - short - float - double - char - unsigned char - string - char array - String - object - Array - 2-dimensionelt Array - void
Program-klassikere Polling - State-machine - Trykknap - Forkant - Bagkant - Prel
Arduino Arduino til Programmering - C til Arduino - Programmering Shield - Arduino PC-software - Arduino Udviklingsmiljø - Arduino Pin Library - Funktion - Arduino Seriel - Arduino String - Arduino String Split - Arduino StateChangeDetection - setup() - loop() - Compilerdirektiver - Asynkron kommunikation - millis() - micros() - Scratch for Arduino - Send fra Arduino til Excel - [[]] - [[]]
Processing Grafik i Processing‎ - Keyboard i Processing - Mus i Processing‎ - Tid i Processing‎ - Draw() - Setup() - Tal Input til Processing - Syntaksfarvning - Kommunikation fra Arduino til Processing - Kommunikation fra Processing til Arduino
javaScript Javascript input‎ - Javascript output‎ - Javascript strukturer‎ - Javascript syntaks‎ - Tid i javaScript - Objekt‎ - AJAX
Serverprogrammering PHP - MySQL - Task Scheduler - WeMOS
PIC JAL - [[]]
Scratch for Arduino S4A Installation - S4A programmering - S4A undervisningsforløb - S4A begrænsninger
Program Dokumentation Algoritme - Flowchart - Pseudokode - Datastruktur - Dataabstraktion - Pulsplaner - Program-kommentar - Teori - Test - UML