Daten vom Control Center über I2C (TWI- Hardwaremodul) zwischen AVR- Mikrocontroller und Lego mindstorms NXT senden/ empfangen.
NXT ist der Master; ATmega32 ist der Slave
|
Mit dem Control Center lassen sich Bewegungsabläufe programmieren. |
Schaltplan
Bascom Quellcode für ATmega32
TWI- Hardwaremodul
'********************************************************************
'Control Center an Atmega 32
'Daten über TWI an NXT
'2011-11
'********************************************************************
$regfile = "M32def.dat"
$crystal = 7372800
$baud = 9600
$hwstack = 100
$swstack = 100
$framesize = 100
'Control Center
Ddrd = 0 'Taster Control Center
Portd = &B11111100 'pull ups
A Alias Pind.2
B Alias Pind.3
N Alias Pind.4
S Alias Pind.5
W Alias Pind.6
E Alias Pind.7
Dim Wert As Word 'betätigte Taste
'Twi
Dim Twi_control As Byte 'Controlregister lokale kopie
Dim Twi_status As Byte
Dim Twi_data As Byte
Declare Sub Twi_init_slave 'TWI
Twi_data = 0
Call Twi_init_slave 'TWI aktivieren
On Twi Twi_isr
Enable Twi
Enable Interrupts
Do
Loop
End
'---- TWI ----
' TWI als slave aktivieren
Sub Twi_init_slave
Twsr = 0 'status und Prescaler auf 0
Twdr = &HFF 'default
Twar = &H40 'Slaveadresse setzen ´
Twcr = &B01000101 'ACK einschalten, TWI aktivieren, enable Interrupt
End Sub
Twi_isr:
Twi_status = Twsr And &HF8 'Status
'will der Master ein Byte haben
If Twi_status = &HA8 Or Twi_status = &HB8 Then
Gosub Taste
Twdr = Wert
End If
'TWINT muss immer gelöscht werden, damit es auf dem Bus weiter geht
Twcr = &B11000101
Return
Taste:
Wert = &HFF
If A = 0 Then Wert = &H1
If B = 0 Then Wert = &H2
If N = 0 Then Wert = &H3
If S = 0 Then Wert = &H5
If W = 0 Then Wert = &H6
If E = 0 Then Wert = &H4
If N = 0 And E = 0 Then Wert = &H7
If E = 0 And S = 0 Then Wert = &H8
If S = 0 And W = 0 Then Wert = &H9
If W = 0 And N = 0 Then Wert = &HA
Return
Programmierung mit NXT-G:
Auslesen und auf dem NXT Display anzeigen, welche Taster auf dem Control Center betätigt wurden |
|
Programmierung mit LabVIEW:
Direkt- Modus
Auslesen und im Frontpanel anzeigen, welche Taster auf dem Control Center betätigt wurden
Ich kann keinerlei Haftung für die Schaltungen übernehmen und auch keine Funktionsfähigkeit garantieren. Der Nachbau und Einsatz der hier veröffentlichten Schaltungen erfolgt auf eigene Gefahr. Ich übernehme keinerlei Garantie. Die VDE-Vorschriften sind zu beachten.