Konstanter

Fra Holstebro HTX Wiki
Skift til: navigering, 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