Hi,
was bewirkt denn dieser Befehl?
Const Timsk = Timsk0
Die Stacks habe ich auch schon ganz schön hochgeschraubt!!!
Also folgender Code beinhaltet das Problem:
Code:
$regfile = "M1284pdef.dat"
' In den Fusebits wurde der externe Oszillator für 18,432MHz ausgewählt
$crystal = 18432000
$hwstack = 355 ' Standard 42 für den "Hardware Stack"
$swstack = 355 ' Standard 40 für den "Software Stack"
$framesize = 655 ' Standard 40 für den "Frame"
' Baudrate für den ersten seriellen Port
$baud = 9600
' Baudrate für den zweitern seriellen Port
$baud1 = 9600
' Analog Comparator ausschalten ACSR.ACD = 1
Stop Ac
' Watchdog ausschalten
Stop Watchdog
' Echo aus
Echo Off
' Interrupts global zulassen
Enable Interrupts
' KONFIGURATION
' Com1 auf 8 Bit Modus konfigurieren
Config Com1 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
' Com2 auf 8 Bit Modus konfigurieren
Config Com2 = Dummy , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0
' Öffnen der zweiten Com-Schnittstelle
Open "COM2:" For Binary As #1
' Empfangspuffer UART
Config Serialin = Buffered , Size = 50
' Sendepuffer UART
Config Serialout = Buffered , Size = 50
' Empfangspuffer UART1
Config Serialin1 = Buffered , Size = 50
' Sendepuffer UART1
Config Serialout1 = Buffered , Size = 50
Declare Sub Kommunikation
Do
....
Call Kommunikation
....
Loop
Sub Kommunikation
' Daten im Empfangspuffer
If _rs_bufcountr1 > 0 Then
fehlende_daten = 0
' Daten vollständig empfangen
If _rs_bufcountr1 >= 5 Then
falsche_laenge = 0
' Daten einlesen
Inputbin #1 , empfangsarray(1) , 5
ziel = empfangsarray(1)
quelle = empfangsarray(2)
If ziel = 0 Then
falscher_kopf = 0
' HIER PASSIERT DER FEHLER!!!!!!!!!!!!!!!!!!!
If quelle = Pruef_quelle Then
falscher_tn = 0
' Empfangene Checksumme mit errechneter vergleichen
If empfangsarray(5) = Crc8(empfangsarray(1) , 4) Then
Err_falsche_checksumme = 0
' Hier tut er dann irgendwas!!!
Else
Err_falsche_checksumme = 1
End If
Else
Err_falscher_tn = 1
' Zur Fehlerüberprüfung springen
End If
Else
falscher_kopf = 1
End If
Else
falsche_laenge = 1
End If
Else
fehlende_daten = 1
End If
End Sub
Lesezeichen