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
Ch Sp schrieb: > cannot set sck period Klingt nach falscher Angabe des Clocks. Avrdude kann mit Deiner Angabe offenbar nix anfangen. Was machst Du denn genau? Gruss
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?
.. 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
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 |
Neee, es kommt zwar die Meldung "Flash successfully written" - jedoch läuft das o. g. Programm ohne Inhalt -aus dem 1. Thread-, also nur LED aufblinken etc. nicht...
Hats Du an dem Camera Steckverbinder was dran beim Programmieren? Wenn ja, mach das mal ab. Schau mir das heute Abend nochmal genauer an. Gruss
Hallo, nein, angeschlossen ist nur ein Servo, keine Kamera/kein GPS/Kein XBee
Es war ein Probleem mit der 1wire-Pin Belegung!!!
Schön zu lesen, dass es nun funktioniert. Noch viel Spaß beim Projekt!
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.