Mikroelektronika MIKROE-350 Datenbogen

Seite von 526
Library Example
This code demonstrates using library routines for Soft_SPI communication. Also, this
example demonstrates working with Microchip's MCP4921 12-bit D/A converter.
program Soft_SPI
' DAC module connections
dim Chip_Select as sbit at PORTB.0
SoftSpi_CLK 
as sbit at PORTB.7
SoftSpi_SDI 
as sbit at PINB.6   ' Note: Input signal
SoftSpi_SDO
as sbit at PORTB.5
dim Chip_Select_Direction as sbit at DDRB.0
SoftSpi_CLK_Direction 
as sbit at DDRB.7
SoftSpi_SDI_Direction 
as sbit at DDRB.6
SoftSpi_SDO_Direction 
as sbit at DDRB.5
' End DAC module connections
dim value as word
sub procedure InitMain()
DDA0_bit = 0                         ' Set PA0 pin as input
DDA1_bit = 0                         ' Set PA1 pin as input
Chip_Select = 1                      ' Deselect DAC
Chip_Select_Direction = 1             ' Set CS# pin as Output
Soft_Spi_Init()                      ' Initialize Soft_SPI
end sub
' DAC increments (0..4095) --> output voltage (0..Vref)
sub procedure DAC_Output(dim valueDAC as word)
dim temp as byte
Chip_Select = 0                        ' Select DAC chip
' Send High Byte
temp = 
word(valueDAC >> 8) and 0x0F    ' Store valueDAC[11..8] to
temp[3..0]
temp = temp or 0x30                    ' Define DAC setting, see
MCP4921 datasheet
Soft_SPI_Write(temp)        ' Send high byte via Soft SPI
' Send Low Byte
temp = valueDAC            ' Store valueDAC[7..0] to temp[7..0]
Soft_SPI_Write(temp)       ' Send low byte via Soft SPI
Chip_Select = 1                        ' Deselect DAC chip
end sub
main:
InitMain()                     ' Perform main initialization
349
MIKROELEKTRONIKA
- SOFTWARE AND HARDWARE SOLUTIONS FOR EMBEDDED WORLD
Libraries
mikroBasic PRO for AVR
CHAPTER 6