Programm flashen - "avrdude.exe: verification error"

OP #2643279
Lesenswert?

Hallo,

ich arbeite hier an einer Schaltung und kann auch den Code/das Programm 
auf einen ATmega8 flashen, allerdings erhalte ich folgende 
Fehlermeldung:



C:\Programme\WinAVR-20100110\bin\avrdude.exe -C C:\ ... programm.hex:a

avrdude.exe: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude.exe: AVR device initialized and ready to accept instructions

Reading | ################################################## | 100% 
0.03s

avrdude.exe: Device signature = 0x1e9307
avrdude.exe: NOTE: FLASH memory has been specified, an erase cycle will 
be performed
             To disable this feature, specify the -D option.
avrdude.exe: erasing chip
avrdude.exe: warning: cannot set sck period. please check for usbasp 
firmware update.
avrdude.exe: reading input file "C:\ ... programm.hex"
avrdude.exe: input file C:\ ... programm.hex auto detected as Intel Hex
avrdude.exe: writing flash (3524 bytes):

Writing | ################################################## | 100% 
17.13s

avrdude.exe: 3524 bytes of flash written
avrdude.exe: verifying flash memory against C:\ ... programm.hex:
avrdude.exe: load data flash data from input file C:\ ... programm.hex:
avrdude.exe: input file C:\ ... programm.hex auto detected as Intel Hex
avrdude.exe: input file C:\ ... programm.hex contains 3524 bytes
avrdude.exe: reading on-chip flash data:

Reading | ################################################## | 100% 
15.36s

avrdude.exe: verifying ...
avrdude.exe: verification error, first mismatch at byte 0x019e
             0x34 != 0xe5
avrdude.exe: verification error; content mismatch

avrdude.exe done.  Thank you.


Das Programm wird geschrieben... Es handelt sich um den USBasp 
programmer!

Fehlermeldung am Ende: "Error writing Flash"...

Könnte man die Fehlerursache irgendwie eingrenzen?

Danke,
Christoph
OP #2643321
Lesenswert?

Ist eine Steuerung für Servos, ganze genau so etwas hier:


http://www.google.de/search?tbm=isch&hl=de&source=hp&biw=1280&bih=646&q=kap&gbv=2&oq=kap&aq=f&aqi=g10&aql=&gs_nf=1&gs_l=img.3..0l10.871.1078.0.1305.3.3.0.0.0.0.94.164.2.2.0.qt4Ftf7iq8Q#hl=de&gbv=2&tbm=isch&sa=1&q=kap+rig&oq=kap+rig&aq=f&aqi=g1&aql=&gs_nf=1&gs_l=img.3..0.5115.5458.2.6119.3.3.0.0.0.1.514.1023.2-2j5-1.3.0.vK4OwDlegtw&pbx=1&bav=on.2,or.r_gc.r_pw.r_qf.,cf.osb&fp=e3c9fb3fe9a8299b&biw=1280&bih=646

Ich habe nun einen L293D eingebaut und seit dem gibts Probleme... Nehme 
ich den raus, bestehen die Probleme weiterhin...


Sowas hier schreibt er erfolgreich ohne Fehlermeldung:
1
$regfile = "m8def.dat"
2
$crystal = 7372800                                          ' 7,3728 Mhz Quarzoszillator an PB6 / XTAL 1
3
$hwstack = 32
4
$swstack = 32
5
$framesize = 32
6

7
Pwr_all Alias Portc.5
8
Config Pwr_all = Output
9

10

11
Wait 1
12

13
Do
14

15

16
Loop
17

18
End


Kann meine zuvor beschriebene Problematik auch an den Stack-Werten 
liegen?
Gast #2643342
Lesenswert?

.. ne, an den Stackwerten liegt das nicht.
Dein Proggi macht ja sowieso nix weiter.

Hast Du noch mehr Code?

Wie sieht die Schaltung aus?

Avrdude Setup?
Gehen andere Projekte mit den selben Einstellungen?

Schaltplan mit/ohne L293?

Was heisst:
>seit dem gibts Probleme... Nehme
>ich den raus, bestehen die Probleme weiterhin...

Was war vorher anders?

MEHR Infos bitte.

Gruss
OP #2643699
Lesenswert?

Hallo,

anbei ein Foto der Schaltung und ein Schaltungsplan, allerdings verwende 
ich den ATmega8 und auf den Drucksensor (MPX4115A) habe ich verzichtet.

Anbei der Code. Probleme gibts erst, seitdem ich den Motortreiber 
eingelötet hatte. Der Programmcode oben, welcher leer ist, ist der Code, 
der Successfully geschrieben wird...

Danke für die Hilfe!


1
' KAP-Rig Control  RX "Drachen" v. 0.19 / LCD / GPS / Befehle
2
' Stand: 19.04.2012
3
'
4
'
5
'
6
' Sendesyntax to GROUND: §GROUND#quittierung#zellspannung1#zellspannung2#gpshoehe#nn#
7
'
8
' Sendesyntax to KAPRIG: %KAPRIG#commands#nn#nn#nn#nn#
9

10

11

12
$regfile = "m8def.dat"
13
$crystal = 7372800                                          ' 7,3728 Mhz Quarzoszillator an PB6 / XTAL 1
14
$hwstack = 64
15
$swstack = 64
16
$framesize = 64
17
$baud = 9600
18

19
Pwr_all Alias Portd.2                                       'Abschaltung der Servos und LM2675 (5V für GPS, Video 5,8 GHz Tx)
20
Pwr_gps Alias Portd.3
21
Pwr_video Alias Portd.4
22

23
Led_rot Alias Portc.5
24

25
Pan1 Alias Portb.0
26
Pan2 Alias Portd.7
27

28

29

30

31

32
'Variablen
33
Dim Spannung As Word
34
Dim Zellspannung_orig As Single
35
Dim Zellspannung As String * 5
36

37

38
Dim Quittierung As String * 21
39
Dim Gpshoehe As String * 10
40

41
Dim Gps_zeichen As Byte
42
Dim Gpsdaten As String * 98
43
Dim Gps_header As String * 6
44
Dim Gps_anzahl As Byte
45
Dim Gps_teilstring(14) As String * 12
46
Dim Gps_hoehenteilstring(2) As String * 8
47

48
Dim Befehls_zeichen As Byte
49
Dim Befehlsdaten As String * 101
50
Dim Befehls_header As String * 6
51
Dim Befehls_anzahl As Byte
52
Dim Befehls_teilstring(5) As String * 21
53

54
Dim Temp(9) As Byte
55
Dim X As Byte
56
Dim Celsius As Integer
57
Dim T As Single
58
Dim Temperatur As String * 5
59

60
Dim A As Byte
61

62

63

64

65

66
'Portkonfiguration / Initialisierung
67
Config Pwr_all = Output
68
Config Pwr_gps = Output
69
Config Pwr_video = Output
70

71
Config Pan1 = Output                                        'LD293
72
Config Pan2 = Output
73

74

75

76
Config 1wire = Portd.3                                      ' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert
77

78
Config Adc = Single , Prescaler = Auto , Reference = Avcc   'ADC Wandler definieren
79

80
Config Portb.1 = Output
81

82
Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 8
83

84

85

86
Config Serialin = Buffered , Size = 128
87
Open "COMB.7:9600,8,N,1" For Input As #1                    'PB.7 = RxD SoftUART / GPS
88

89

90

91
Const Adc_multi = 0.0048828125                              ' = 5.0 / 1024.0 -> ADC auflösen
92
Pwr_all = 1                                                 ' bei Systemstart Peripherie auf ON
93
Pwr_gps = 1
94
Pwr_video = 1
95

96
Led_rot = 1
97

98
Pan1 = 0
99
Pan2 = 0
100

101

102
Declare Sub Xbee                                            ' Senderoutine, um $GROUND#... permanent zu senden
103

104
Start Adc
105

106
Enable Interrupts
107

108

109
Print "KaprigPRINT"
110

111
Wait 1
112
Led_rot = 0
113
Wait 1
114
Led_rot = 1
115

116

117
Do
118

119

120
   '==========Temperaturmessung mit DS18B20Z 1Wire============================
121

122
   1wreset
123
   1wwrite &HCC
124
   1wwrite &H44
125
   Waitms 800
126

127
   1wreset
128
   1wwrite &HCC
129
   1wwrite &HBE
130

131

132
   For X = 1 To 9
133
      Temp(x) = 1wread()
134
   Next
135

136

137
   Celsius = Makeint(temp(1) , Temp(2))
138

139
   T = Celsius / 16
140

141
   Temperatur = Fusing(t , "##.#")
142

143

144
   '==========Spannung LiPo 2S messen========================================
145

146
   Spannung = Getadc(0)                                     ' Zelle messen und berechnen
147
   Zellspannung_orig = Spannung * Adc_multi
148
   Zellspannung_orig = Zellspannung_orig * 2
149
   Zellspannung = Fusing(zellspannung_orig , "#.#")
150

151
   If Zellspannung_orig <= 6.4 Then                         ' Zellspannung unter/gleich 6,4 Volt (2x 3,2 Volt) dann...
152
      Gosub Lipo_saver
153
   End If
154

155

156
   '==========Rx Prüfen auf Befehlseingänge==================================
157
  '(
158
   Befehls_zeichen = Inkey()                                ' Zeichen einlesen
159

160
   If Befehls_zeichen = 36 Then Input , Befehlsdaten Noecho ' ist "$"  vorhanden, dann Daten/HardUART einlesen >> Befehlsdaten
161

162
      Befehls_header = Mid(befehlsdaten , 1 , 6)            'ersten 6 Zeichen nach Befehls_header einlesen
163
      If Befehls_header = "KAPRIG" Then                     'wenn KAPRIG Befehlssatz, dann
164

165
         Befehls_anzahl = Split(befehlsdaten , Befehls_teilstring(1) , "#")       'aus Befehlsdaten in 5 Teilstrings/Arrays, getrennt durch "#", aufteilen
166
         Befehlsdaten = ""                                  'befehlsdaten leeren
167
         Gosub Commands                                     ' Auswertung der Befehle/Teilstrings in Subroutine "commands"
168

169
      End If
170
')
171

172
   '==========GPS-Auswertung (NL-504ETT)=====================================
173

174
   Gps_zeichen = Inkey(#1)                                  ' Zeichen einlesen
175

176

177
   If Gps_zeichen = 36 Then Input #1 , Gpsdaten Noecho      ' ist "$"  vorhanden, dann Daten/SoftUART #1 einlesen >> Gpsdaten
178

179
      Gps_header = Mid(gpsdaten , 1 , 5)                    'ersten 5 Zeichen nach Gps_header einlesen
180
      If Gps_header = "GPGGA" Then                          'wenn GPGGA Befehlssatz, dann
181

182

183
         Gps_anzahl = Split(gpsdaten , Gps_teilstring(1) , ",")       'aus Gpsdaten in 14 Teilstrings/Arrays, getrennt durch ",", aufteilen
184
         Gps_anzahl = Split(gps_teilstring(10) , Gps_hoehenteilstring(1) , ".")       'Teilstring 10, Höhe xxx.xx, aufteilen in Wert vor dem "."
185
         Gpsdaten = ""                                      'gpsdaten leeren
186
         Gpshoehe = Gps_hoehenteilstring(1)                 'gpshoehe = Höhe in Metern vor dem Komma über Meeresspiegel
187

188
      End If
189

190

191
   Call Xbee                                                ' kontinuierliches Senden der Parameter
192

193
Loop
194

195
Eop:
196
Close #1
197

198
End
199

200

201
'----------------Befehlsbibliothek "Commands"-----------------------------------
202

203
Commands:
204
   Select Case Befehls_teilstring(2)
205

206
     Case "TAKEPHOTO"                                       ' Teilstring(2) auswerten auf "TAKEPHOTO"
207
     Locate 4 , 1
208
     Lcd Befehls_teilstring(2)
209
     Pwr_all = 0
210
     Waitms 500
211
     Pwr_all = 0
212
     Quittierung = "Photo is taken"
213
     Waitms 500
214
     Quittierung = ""
215
     Cls
216
     Pwr_all = 1
217

218
     Case "PAN_left"
219

220
      A = 60
221
      Compare1a = A
222
      Pan1 = 1
223
      Pan2 = 0
224
      Waitms 30
225
      Pan1 = 0
226
      Pan2 = 0
227

228

229
     Case "PAN_right"
230

231
      A = 60
232
      Compare1a = A
233
      Pan1 = 0
234
      Pan2 = 1
235
      Waitms 30
236
      Pan1 = 0
237
      Pan2 = 0
238

239

240
   End Select
241

242

243

244
   Select Case Befehls_teilstring(3)                        ' hier optionale Auswertung von weiteren Teilstrings
245

246
     Case ""
247

248
     Locate 4 , 1
249
     Lcd Befehls_teilstring(3) ""
250

251

252

253
   End Select
254

255
Return
256

257

258

259
'----------------LiPo-Saver/Abschaltung "Lipo_saver"----------------------------
260

261
Lipo_saver:
262
   Quittierung = "LiPo-Saver!"                              ' Quittierung an Bodenstation
263
   Stop Adc                                                 ' ADC abschalten um Strom zu sparen
264
   Stop Ac                                                  ' AC abschalten um Strom zu sparen
265
   Pwr_all = 0                                              ' testweise Ausgabe PWR_all = 0 --> hier: LED an!
266
   Locate 4 , 1
267
   Print "LiPo-Saver!"
268
   Waitms 500
269
   Quittierung = ""                                         'Quittierung löschen
270

271

272
Return
273

274

275

276
'----------------Sonstiges------------------------------------------------------
277

278

279
Sub Xbee
280

281
    Print "§GROUND#" ; Quittierung ; "#" ; Zellspannung ; "#" ; Gpshoehe ; "#" ; Temperatur ; "#"
282
    Print Gps_header
283

284
End Sub
Angehängte Dateien:

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren