PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Fehler im Beispiel programm



BlueDragons
29.08.2010, 18:36
Hallo Forum!

Habe heute wieder mein RN-Control rausgekramt, angeschlossen und wollte wieder das Beispielprogramm draufladen, doch da wurde mir folgender Fehler angezeigt:

Error : 118 Line : 182 Invalid length, in File : C:\...

Und hier der Fehler:

Local Zustand As String

Hier mal der Code:

'################################################# ##
'rncontroltest.BAS
'für
'RoboterNetz Board RN-CONTROL 1.4
'Das neue preiswerte Controllerboard zum experimentieren
'
'Aufgabe:
' Dieses Testprogramm testet gleich mehrere Eigenschaften auf dem Board
' Den verschiedenen Tasten sind bestimmte Funktionen zugeordnet
' Taste 1: Zeigt Batteriespannung über RS232 an
' Taste 2: Angeschlossene Motoren beschleunigen und abbremsen
' Taste 3: Einige male Lauflicht über LED´s anzeigen. Am I2C-Bus
' darf in diesem Moment nichts angeschlossen sein
' Taste 4: Zeigt analoge Messwerte an allen Port A PIN´s über RS232 an
''Taste 5: Zeigt digitalen I/O Zustand von PA0 bis PA5 an
' Ser gut kann man aus dem Demo auch entnehmen wie Sound ausgegeben wird,
' wie Tasten abgefragt werden und wie Subroutinen und Funktionen angelegt werden
'Autor: Frank
'Weitere Beispiele und Beschreibung der Hardware
'unter http://www.Roboternetz.de oder robotikhardware.de
'################################################# ######
Declare Sub Batteriespannung()
Declare Sub Motortest()
Declare Sub Lauflicht()
Declare Sub Showporta()
Declare Sub Showdigitalporta()
Declare Function Tastenabfrage() As Byte
$regfile = "m16def.dat"
Dim I As Integer
Dim N As Integer
DIM Ton As Integer
$crystal = 16000000 'Quarzfrequenz
$baud = 9600
Config Adc = Single , Prescaler = Auto 'Für Tastenabfrage und Spannungsmessung
Config Pina.7 = Input 'Für Tastenabfrage
Porta.7 = 1 'Pullup Widerstand ein
Const Ref = 5 / 1023 'Für Batteriespannungsberechnung
Dim Taste As Byte
Dim Volt As Single
' Für Motorentest
'Ports für linken Motor
Config Pinc.6 = Output 'Linker Motor Kanal 1
Config Pinc.7 = Output 'Linker Motor Kanal 2
Config Pind.4 = Output 'Linker Motor PWM
'Ports für rechten Motor
Config Pinb.0 = Output 'Rechter Motor Kanal 1
Config Pinb.1 = Output 'Rechter Motor Kanal 2
Config Pind.5 = Output 'Rechter Motor PWM
Config Timer1 = Pwm , Pwm = 10 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down
Pwm1a = 0
Pwm1b = 0
Tccr1b = Tccr1b Or &H02 'Prescaler = 8
I = 0
Sound Portd.7 , 400 , 450 'BEEP
Sound Portd.7 , 400 , 250 'BEEP
Sound Portd.7 , 400 , 450 'BEEP
Print
Print "**** RN-CONTROL 1.1 *****"
Print "Das neue Experimentier- und Roboterboard"
Print
Do
Taste = Tastenabfrage()
If Taste <> 0 Then
Select Case Taste
Case 1
Call Batteriespannung 'Taste 1 Zeigt Bateriespannung über
'RS232 an
Case 2
Call Motortest 'Taste 2 Motoren beschleunigen und
'abbremsen
Case 3
Call Lauflicht 'Einige male Lauflicht über LED´s
'anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen sein
Case 4
Call Showporta 'Zeigt Messwerte an allen Port A PIN´s
Case 5
Call Showdigitalporta 'Zeigt digitalen I/O Zustand von PA0 bis
'PA5 an
End Select
Sound Portd.7 , 400 , 500 'BEEP
End If
Waitms 100
Loop
End
'Diese Unterfunktion fragt die Tastatur am analogen Port ab
Function Tastenabfrage() As Byte
Local Ws As Word
Tastenabfrage = 0
Ton = 600
Start Adc
Ws = Getadc(7)
If Ws < 1010 Then
Select Case Ws
Case 410 To 450
Tastenabfrage = 1
Ton = 550
Case 340 To 380
Tastenabfrage = 2
Ton = 500
Case 265 To 305
Tastenabfrage = 3
Ton = 450
Case 180 To 220
Tastenabfrage = 4
Ton = 400
Case 100 To 130
Tastenabfrage = 5
Ton = 350
End Select
Sound Portd.7 , 400 , Ton 'BEEP
End If
End Function
'Diese Unterfunktion zeigt Bateriespannung an
Sub Batteriespannung()
Local W As Word
Start Adc
W = Getadc(6)
Volt = W * Ref
Volt = Volt * 5.2941
Print "Die aktuelle Spannung beträgt: " ; Volt ; " Volt"
End Sub
'Testet Motoren und Geschwindigkeitsreglung
Sub Motortest()
'Linker Motor ein
Portc.6 = 1 'bestimmt Richtung
Portc.7 = 0 'bestimmt Richtung
Portd.4 = 1 'Linker Motor EIN
'Rechter Motor ein
Portb.0 = 1 'bestimmt Richtung rechter Motor
Portb.1 = 0 'bestimmt Richtung rechter Motor
Portd.5 = 1 'rechter Motor EIN
I = 0
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I + 5
Loop Until I > 1023
Wait 1
Do
Pwm1a = I
Pwm1b = I
Waitms 40
I = I - 5
Loop Until I < 1
Pwm1a = 0 'Linker Motor aus
Pwm1b = 0 'rechter Motor aus
End Sub
'Einige male Lauflicht über LED´s anzeigen. Am I2C-Port darf in diesem Moment nichts angeschlossen
'sein
Sub Lauflicht()
Config Portc = Output
Portd = 0
For N = 1 To 10
For I = 0 To 7
Portc.i = 0
Waitms 100
Portc.i = 1
Next I
Next N
Config Portc = Input
End Sub
'Zeigt Die Analogen Messwerte An Port A An
Sub Showporta()
Local Ws As Word
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerständ
'ein,bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print
Print "Ermittelte Messwerte an Port A:"
For I = 0 To 7 ' Alle Eingäne inkl.messen
Start Adc
Ws = Getadc(i)
Volt = Ws * Ref
Print "Pin " ; I ; " ADC-Wert= " ; Ws ; " bei 5V REF waeren das " ; Volt ; " Volt"
Next I
End Sub
'Zeigt den Zustand einiger freier I/OI/O von Die Analogen Messwerte An Port A An
Sub Showdigitalporta()
Local Zustand As String
Config Porta = Input
For I = 0 To 5 ' Alle internen Pullup Widerständ
'ein,bis auf Batteriespannungsmessungsport
Porta.i = 1
Next I
Print
Print "Ermittelter I/O Zustand Port A:"
For I = 0 To 5 ' Alle Eingäne inkl.messen
If Pina.i = 1 Then
Zustand = "High"
Else
Zustand = "Low"
End If
Print "Pin " ; I ; " I/O Zustand= " ; Pina.i ; " " ; Zustand
Next I
End Sub

Vielleicht sollte ich auch noch bemerken, dass ich in Bascom noch anfänger bin 8-[
Ich hoffe, ihr könnt mir helfen =P~

MfG BlueDragons

Jaecko
29.08.2010, 18:52
Naja, wie lang soll denn der String sein? Diese Angabe fehlt hier.
Vergleich mal mit dem Original auf http://www.rn-wissen.de/index.php/RN-Control

BlueDragons
29.08.2010, 18:59
danke für die schnelle antwort :)

Das ausm Wiki scheint zu funktionieren, ich hatte es mir hier her geholt:
http://www.robotikhardware.de/download/rncontrol14.pdf

MfG BlueDragons

BlueDragons
29.08.2010, 19:05
so, ich merke, dass ich mich wirklich noch nicht sehr damit auskenne, habe jetzt beim flashen folgende fehlermeldung bekommen

Access violation at address 00404E66 in module 'bascavr.exe'. Read of address 00000378.

nur leider kann ich damit nichts anfangen :D
vielleicht ihr?

MfG BlueDragons

BlueDragons
30.08.2010, 15:49
na toll, jetzt habe ich das programm -meines erachtens- auf dem µc, habe ihn auch resettet, doch das programm will nicht starten ](*,)

Hier mal das "Ergebnis":

Report : noname2
Date : 08-30-2010
Time : 16:36:38

Compiler : BASCOM-AVR LIBRARY V 1.11.9.8, DEMO Edition
Processor : M32
SRAM : 800 hex
EEPROM : 400 hex
ROMSIZE : 8000 hex

ROMIMAGE : E80 hex -> Will fit into ROM
ROMIMAGE : 3712 dec
FLASH USED : 11 %
BAUD : 9600 Baud
XTAL : 16000000 Hz
BAUD error : 0.16%

Stack start : 85F hex
Stack size : 20 hex
S-Stacksize : 20 hex
S-Stackstart : 840 hex
Framesize : 20 hex
Framestart : 81F hex
Space left : 1940 dec

LCD DB7 : PORTB.7
LCD DB6 : PORTB.6
LCD DB5 : PORTB.5
LCD DB4 : PORTB.4
LCD E : PORTB.3
LCD RS : PORTB.2
LCD mode : 4 bit

--------------------------------------------------------------------------------
Variable Type Address(hex) Address(dec)
--------------------------------------------------------------------------------
SP Word 005D 93
TCNT1 Word 004C 76
OCR1A Word 004A 74
OCR1B Word 0048 72
ICR1 Word 0046 70
EEAR Word 003E 62
ADC Word 0024 36
TIMER1 Word 004C 76
COMPARE1A Word 004A 74
COMPARE1B Word 0048 72
CAPTURE1 Word 0046 70
HWSTACK Word 005D 93
SWSTACK Word 001C 28
FRAME Word 0004 4
COMPARE0 Byte 005C 92
PWM Byte 005C 92
COUNTER0 Byte 0052 82
TIMER0 Byte 0052 82
COUNTER2 Byte 0044 68
TIMER2 Byte 0044 68
COMPARE2 Byte 0043 67
ADCD Word 0024 36
COUNTER1 Word 004C 76
TIMER1 Word 004C 76
CAPTURE1 Word 0046 70
COMPARE1A Word 004A 74
PWM1A Word 004A 74
COMPARE1 Word 004A 74
PWM1B Word 0048 72
COMPARE1B Word 0048 72
PWM0 Byte 005C 92
ERR Bit 0006 6
I Integer 0060 96
N Integer 0062 98
TON Integer 0064 100
TASTE Byte 0066 102
VOLT Single 0067 103

--------------------------------------------------------------------------------
Constant Value
--------------------------------------------------------------------------------
SREG &H3F
SPH &H3E
SPL &H3D
OCR0 &H3C
GIMSK &H3B
GICR &H3B
GIFR &H3A
TIMSK &H39
TIFR &H38
SPMCR &H37
SPMCSR &H37
TWCR &H36
MCUCR &H35
MCUSR &H34
MCUCSR &H34
TCCR0 &H33
TCNT0 &H32
OSCCAL &H31
SFIOR &H30
TCCR1A &H2F
TCCR1B &H2E
TCNT1H &H2D
TCNT1L &H2C
OCR1AH &H2B
OCR1AL &H2A
OCR1BH &H29
OCR1BL &H28
ICR1H &H27
ICR1L &H26
TCCR2 &H25
TCNT2 &H24
OCR2 &H23
ASSR &H22
WDTCR &H21
UBRRHI &H20
UCSRC &H20
EEARH &H1F
EEARL &H1E
EEDR &H1D
EECR &H1C
PORTA &H1B
DDRA &H1A
PINA &H19
PORTB &H18
DDRB &H17
PINB &H16
PORTC &H15
DDRC &H14
PINC &H13
PORTD &H12
DDRD &H11
PIND &H10
SPDR &H0F
SPSR &H0E
SPCR &H0D
UDR &H0C
USR &H0B
UCSRA &H0B
UCR &H0A
UCSRB &H0A
UBRR &H09
UBRRL &H09
ACSR &H08
ADMUX &H07
ADCSR &H06
ADCSRA &H06
ADCH &H05
ADCL &H04
TWDR &H03
TWAR &H02
TWSR &H01
TWBR &H00
INT1 7
INT0 6
INT2 5
IVSEL 1
IVCE 0
INTF1 7
INTF0 6
INTF2 5
TOIE0 0
OCIE0 1
TOIE1 2
OCIE1B 3
OCIE1A 4
TICIE1 5
TOIE2 6
OCIE2 7
TOV0 0
OCF0 1
TOV1 2
OCF1B 3
OCF1A 4
ICF1 5
TOV2 6
OCF2 7
SPMIE 7
ASB 6
ASRE 4
BLBSET 3
PGWRT 2
PGERS 1
SPMEN 0
SELFPRGEN 0
SE 7
SM2 6
SM1 5
SM0 4
ISC11 3
ISC10 2
ISC01 1
ISC00 0
JTD 7
ISC2 6
EIH 5
JTRF 4
WDRF 3
BORF 2
EXTRF 1
PORF 0
FOC0 7
WGM00 6
COM01 5
COM00 4
WGM01 3
CS02 2
CS01 1
CS00 0
COM1A1 7
COM1A0 6
COM1B1 5
COM1B0 4
FOC1A 3
FOC1B 2
PWM11 1
PWM10 0
ICNC1 7
ICES1 6
CTC11 4
CTC10 3
CTC1 3
CS12 2
CS11 1
CS10 0
FOC2 7
PWM2 6
COM21 5
COM20 4
CTC2 3
CS22 2
CS21 1
CS20 0
RPDD 7
RPDC 6
RPDB 5
RPDA 4
ACME 3
PUD 2
PSR2 1
PSR10 0
WDTOE 4
WDE 3
WDP2 2
WDP1 1
WDP0 0


EDIT: muss ihn in 2 teilen posten :D

MfG BlueDragons

BlueDragons
30.08.2010, 15:54
2. teil:


EERIE 3
EEMWE 2
EEWE 1
EERE 0
EEPE 1
PA7 7
PA6 6
PA5 5
PA4 4
PA3 3
PA2 2
PA1 1
PA0 0
DDA7 7
DDA6 6
DDA5 5
DDA4 4
DDA3 3
DDA2 2
DDA1 1
DDA0 0
PINA7 7
PINA6 6
PINA5 5
PINA4 4
PINA3 3
PINA2 2
PINA1 1
PINA0 0
PB7 7
PB6 6
PB5 5
PB4 4
PB3 3
PB2 2
PB1 1
PB0 0
DDB7 7
DDB6 6
DDB5 5
DDB4 4
DDB3 3
DDB2 2
DDB1 1
DDB0 0
PINB7 7
PINB6 6
PINB5 5
PINB4 4
PINB3 3
PINB2 2
PINB1 1
PINB0 0
PC7 7
PC6 6
PC5 5
PC4 4
PC3 3
PC2 2
PC1 1
PC0 0
DDC7 7
DDC6 6
DDC5 5
DDC4 4
DDC3 3
DDC2 2
DDC1 1
DDC0 0
PINC7 7
PINC6 6
PINC5 5
PINC4 4
PINC3 3
PINC2 2
PINC1 1
PINC0 0
PD7 7
PD6 6
PD5 5
PD4 4
PD3 3
PD2 2
PD1 1PD0 =0
DDD7 7
DDD6 6
DDD5 5
DDD4 4
DDD3 3
DDD2 2
DDD1 1
DDD0 0
PIND7 7
PIND6 6
PIND5 5
PIND4 4
PIND3 3
PIND2 2
PIND1 1
PIND0 0
RXC 7
TXC 6
UDRE 5
FE 4
DOR 3
PE 2
U2X 1
MPCM 0
RXCIE 7
TXCIE 6
UDRIE 5
RXEN 4
TXEN 3
CHR9 2
UCSZ2 2
RXB8 1
TXB8 0
URSEL 7
UMSEL 6
UPM1 5
UPM0 4
USBS 3
UCSZ1 2
UCSZ0 1
UCPOL 0
SPIE 7
SPE 6
DORD 5
MSTR 4
CPOL 3
CPHA 2
SPR1 1
SPR0 0
SPIF 7
WCOL 6
SPI2X 0
ACD 7
ACBG 6
ACO 5
ACI 4
ACIE 3
ACIC 2
ACIS1 1
ACIS0 0
REFS1 7
REFS0 6
ADLAR 5
MUX4 4
MUX3 3
MUX2 2
MUX1 1
MUX0 0
ADEN 7
ADSC 6
ADFR 5
ADIF 4
ADIE 3
ADPS2 2
ADPS1 1
ADPS0 0
TWINT 7
TWEA 6
TWSTA 5
TWSTO 4
TWWC 3
TWEN 2
TWI_TST 1
TWIE 0
TWGCE 0
AS2 3
TCN2UB 2
OCR2UB 1
TCR2UB 0
_DATE_FORMAT 0
_DATE_SEPARATOR 92
_GSTRBUF 2048
_RTSCTS 0
_RTSCTS1 0
_RTSCTS3 0
_RTSCTS4 0
_CHIP 23
_RAMSIZE 2048
_ERAMSIZE 1024
_SIM 0
_XTAL 16000000
_BUILD 11198
_COMPILER 90
_HWMUL 1
_ROMSIZE 32768
_DOSFILEWRITE 0
_DOSDIRWRITE 0
_1WEXT 0
_ADC_REFMODEL 8
_UARTS 1
_TIMEOUT 0
_HWSTACK_LOW 2111
_SWSTACK_LOW 2080
_FRAME_HIGH 2080
_XMEGA 0
REF 4.88758553274682E-3


--------------------------------------------------------------------------------
Warnings:
--------------------------------------------------------------------------------
SP not used
TCNT1 not used
OCR1A not used
OCR1B not used
ICR1 not used
EEAR not used
ADC not used
COMPARE0 not used
PWM not used
COUNTER2 not used
COMPARE2 not used
ADCD not used
COMPARE1 not used
PWM0 not used

STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 128
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 129
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 130
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 132
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 133
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 134
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 134
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 134
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 134
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 134
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 135
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 136
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 137
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 137
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 137
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 137
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 137
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 138
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 139
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 140
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 140
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 140
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 140
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 140
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 141
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 142
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 143
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 143
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 143
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 143
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 143
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 144
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 145
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 146
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 146
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 146
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 146
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 146
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 147
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 148
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 151
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 152
STATEMENT NOT ALLOWED AFTER FUNCTION ASSIGNMENT in line 154
Length of string might not be enough to hold the result. A length of 16 is desir in line 168
Length of string might not be enough to hold the result. A length of 16 is desir in line 238