Skip to content

other_directives

Anobium edited this page Oct 18, 2020 · 2 revisions

Other directives

The built-in #defines are used to support the #IFDEF command set are as follows. The table also shows which #defines are supported as string in HSerPrint, SerPrint and other string related commands.

Directive Description Output Usage Returns

ChipADC

String

#IFDEF & Output commands

The number of A/D inputs on the current chip

ChipEEprom

Number

#IFDEF & Output commands

The number of Bytes in EEPROM memmory

ChipIO

String

#IFDEF & Output commands

The number of general purpose IO pins

ChipMHz

String

#IFDEF & Output commands

The microcontroller clock speed

ChipName

Number

#IFDEF Only

The microcontroller type

ChipNameStr

String

#IFDEF & Output commands

The microcontroller name

ChipPins

Number

#IFDEF & Output commands

The number of microcontroller pins.

ChipReserveHighProg

Number

#Scripts, #IFDEF & Output commands

The value of the words reserved

ChipProgrammerNameStr

String

Name of the chip type to be used by a programmer

The psuedo microcontroller type

ChipRam

Number

#IFDEF & Output commands

The RAM size

ChipFamily

Number

#IFDEF & Output commands

See the table below

ChipWords

Number

#IFDEF & Output commands

The number of WORDS in Flash memmory

Var()

Function

Not applicable

True if a register is declared (or false if not declared) in the currently specficied microcontroller’s .dat file.

Var(register_name)

NoVar()

Function

Not applicable

True if a register is NOT declared (or false if declared) in the currently specficied microcontroller’s .dat file.

NoVar(register_name)

Bit()

Function

Not applicable

True if a bit is declared (or false if not declared) in the currently specficied microcontroller’s .dat file.

Bit(bit_name)

NoBit()

Function

Not applicable

True if a bit is NOT declared (or false if declared) in the currently specficied microcontroller’s .dat file.

NoBit(bit_name)

Allof()

Function

Not applicable

True if all defines are declared:

AllOf(define1, define2, …)

OneOf()

Function

Not applicable

True if one of the defines is declared:

OneOf(define1, define2, …)

The table below shows two special directives that support the mapping for one variable or bit to anoher variable or bit. This is useful when creating portable code or libraries to ensure Great Cow BASIC

Directive Explanation Usage

#samebit

The compiler checks each item in the list to see which ones are implemented on the current microcontroller.
If any of the bits do not exist, the compiler will create a constant mapping to the name of the first parameter in the list of parameters that does exist. + If none of the bits exist the no constant is created.

  #samebit PLLEN, SPLLEN, SPLLMULT
    Set SPLLEN On

#samevar

The compiler checks each item in the list to see which ones are implemented on the current microcontroller.
If any of the variables do not exist, the compiler will create a constant mapping to the name of the first parameter in the list of parameters that does exist. + If none of the variables exist the no constant is created.

  #samevar CMCON, CMCON0, CMCONbob
  #ifdef Var(CMCONbob)
      CMCONbob = 7
  #endif

  Compiles to:
  ;CMCONbob = 7
  movlw 7
  movwf CMCON,ACCESS

This table shows the ChipFamily constants mapped to the microcontroller architecture.

ChipFamily Value Microcontroller Characteristics
100 AVR core version V0E class microcontrollers
110 AVR core version V1E class microcontrollers
120 AVR core version V2E class microcontrollers
121 AVR core version AVR8L, also called AVRrc, reduced core class microcontrollers. ATTiny4-5-9-10 and ATTiny102-104 with only 16 GPR’s from r16-r31 and only 54 instructions.
130 AVR core version V3E class microcontrollers but essentially the mega32u6 only
12 Baseline devices. 12 Bit instruction set
15 Mid-range core devices. 14 Bit instruction set with enhanced instruction set class
15 plus familyVariant=1 Mid-range core devices. 14 Bit instruction set with enhanced instruction set and with large memory capability class
16 High end core devices. 16 Bit instruction set, memory addressing architecture and an extended instruction set.
Clone this wiki locally