Frage zu einem Code:
Jetzt möchte ich gerne die Analogwerte zu den jeweiligen Register schieben. Nur wie macht man das am einfachsten beim AVRCode:.NOLIST .INCLUDE "tn26def.inc" .INCLUDE "i2c.inc" .LIST ; Verwendete Register .def LAUTSTL=r16 .def LAUTSTR=r17 .def BAESSE=r18 .def HOEHEN=r19 .def EINGANG=r20 ; Anschluesse .equ TDA8421 = 0b10000000 ; Adresse .equ i2c_delay = 50 ; wait 4.75 us at 4 MHz 25 .equ i2c_port = PORTB ; port supporting I2C .equ i2c_pins = PINB ; port pins supporting I2C .equ i2c_ddr = DDRB ; data direction register for port .equ sda = 0 ; bit within port for serial data in .equ scl = 1 ; bit within port for serial data out ; Starteinstellungen Start: rcall i2c_setup rcall i2c_start ; I2C Start Condition ldi i2c_buffer,TDA8421 ; 1. Modul Adresse rcall i2c_write ; Write Slave address ldi i2c_buffer,0b00000000 ; Lautstärke-L rcall i2c_write ; Write Word address mov i2c_buffer,LAUTSTL ; Stand rcall i2c_write ; Write Word address rcall i2c_stop ;----------------------------------------------------------------------------------- rcall i2c_setup rcall i2c_start ; I2C Start Condition ldi i2c_buffer,TDA8421 ; 1. Modul Adresse rcall i2c_write ; Write Slave address ldi i2c_buffer,0b00000001 ; Lautstärke-R rcall i2c_write ; Write Word address mov i2c_buffer,LAUTSTL ; Stand rcall i2c_write ; Write Word address rcall i2c_stop ;----------------------------------------------------------------------------------- rcall i2c_setup rcall i2c_start ; I2C Start Condition ldi i2c_buffer,TDA8421 ; 1. Modul Adresse rcall i2c_write ; Write Slave address ldi i2c_buffer,0b00000010 ; Bässe rcall i2c_write ; Write Word address mov i2c_buffer,BAESSE ; Stand rcall i2c_write ; Write Word address rcall i2c_stop ;----------------------------------------------------------------------------------- rcall i2c_setup rcall i2c_start ; I2C Start Condition ldi i2c_buffer,TDA8421 ; 1. Modul Adresse rcall i2c_write ; Write Slave address ldi i2c_buffer,0b00000011 ; Lautstärke-L rcall i2c_write ; Write Word address mov i2c_buffer,HOEHEN ; Stand rcall i2c_write ; Write Word address rcall i2c_stop ;----------------------------------------------------------------------------------- rcall i2c_setup rcall i2c_start ; I2C Start Condition ldi i2c_buffer,TDA8421 ; 1. Modul Adresse rcall i2c_write ; Write Slave address ldi i2c_buffer,0b00001100 ; Schalteingang rcall i2c_write ; Write Word address mov i2c_buffer,EINGANG ; Stand rcall i2c_write ; Write Word address rcall i2c_stop ;----------------------------------------------------------------------------------- [...]
Lesezeichen