Datum:
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
Datum:
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
Datum:
Ist eine Steuerung für Servos, ganze genau so etwas hier: http://www.google.de/search?tbm=isch&hl=de&source=... 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:
$regfile = "m8def.dat" $crystal = 7372800 ' 7,3728 Mhz Quarzoszillator an PB6 / XTAL 1 $hwstack = 32 $swstack = 32 $framesize = 32 Pwr_all Alias Portc.5 Config Pwr_all = Output Wait 1 Do Loop End |
Kann meine zuvor beschriebene Problematik auch an den Stack-Werten liegen?
Datum:
.. 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
Datum:
Angehängte Dateien: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!
' KAP-Rig Control RX "Drachen" v. 0.19 / LCD / GPS / Befehle ' Stand: 19.04.2012 ' ' ' ' Sendesyntax to GROUND: §GROUND#quittierung#zellspannung1#zellspannung2#gpshoehe#nn# ' ' Sendesyntax to KAPRIG: %KAPRIG#commands#nn#nn#nn#nn# $regfile = "m8def.dat" $crystal = 7372800 ' 7,3728 Mhz Quarzoszillator an PB6 / XTAL 1 $hwstack = 64 $swstack = 64 $framesize = 64 $baud = 9600 Pwr_all Alias Portd.2 'Abschaltung der Servos und LM2675 (5V für GPS, Video 5,8 GHz Tx) Pwr_gps Alias Portd.3 Pwr_video Alias Portd.4 Led_rot Alias Portc.5 Pan1 Alias Portb.0 Pan2 Alias Portd.7 'Variablen Dim Spannung As Word Dim Zellspannung_orig As Single Dim Zellspannung As String * 5 Dim Quittierung As String * 21 Dim Gpshoehe As String * 10 Dim Gps_zeichen As Byte Dim Gpsdaten As String * 98 Dim Gps_header As String * 6 Dim Gps_anzahl As Byte Dim Gps_teilstring(14) As String * 12 Dim Gps_hoehenteilstring(2) As String * 8 Dim Befehls_zeichen As Byte Dim Befehlsdaten As String * 101 Dim Befehls_header As String * 6 Dim Befehls_anzahl As Byte Dim Befehls_teilstring(5) As String * 21 Dim Temp(9) As Byte Dim X As Byte Dim Celsius As Integer Dim T As Single Dim Temperatur As String * 5 Dim A As Byte 'Portkonfiguration / Initialisierung Config Pwr_all = Output Config Pwr_gps = Output Config Pwr_video = Output Config Pan1 = Output 'LD293 Config Pan2 = Output Config 1wire = Portd.3 ' Pin für 1wire Schnittstelle festlegen, Schnittstelle wird von BASCOM durch Software realisiert Config Adc = Single , Prescaler = Auto , Reference = Avcc 'ADC Wandler definieren Config Portb.1 = Output Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Up , Prescale = 8 Config Serialin = Buffered , Size = 128 Open "COMB.7:9600,8,N,1" For Input As #1 'PB.7 = RxD SoftUART / GPS Const Adc_multi = 0.0048828125 ' = 5.0 / 1024.0 -> ADC auflösen Pwr_all = 1 ' bei Systemstart Peripherie auf ON Pwr_gps = 1 Pwr_video = 1 Led_rot = 1 Pan1 = 0 Pan2 = 0 Declare Sub Xbee ' Senderoutine, um $GROUND#... permanent zu senden Start Adc Enable Interrupts Print "KaprigPRINT" Wait 1 Led_rot = 0 Wait 1 Led_rot = 1 Do '==========Temperaturmessung mit DS18B20Z 1Wire============================ 1wreset 1wwrite &HCC 1wwrite &H44 Waitms 800 1wreset 1wwrite &HCC 1wwrite &HBE For X = 1 To 9 Temp(x) = 1wread() Next Celsius = Makeint(temp(1) , Temp(2)) T = Celsius / 16 Temperatur = Fusing(t , "##.#") '==========Spannung LiPo 2S messen======================================== Spannung = Getadc(0) ' Zelle messen und berechnen Zellspannung_orig = Spannung * Adc_multi Zellspannung_orig = Zellspannung_orig * 2 Zellspannung = Fusing(zellspannung_orig , "#.#") If Zellspannung_orig <= 6.4 Then ' Zellspannung unter/gleich 6,4 Volt (2x 3,2 Volt) dann... Gosub Lipo_saver End If '==========Rx Prüfen auf Befehlseingänge================================== '( Befehls_zeichen = Inkey() ' Zeichen einlesen If Befehls_zeichen = 36 Then Input , Befehlsdaten Noecho ' ist "$" vorhanden, dann Daten/HardUART einlesen >> Befehlsdaten Befehls_header = Mid(befehlsdaten , 1 , 6) 'ersten 6 Zeichen nach Befehls_header einlesen If Befehls_header = "KAPRIG" Then 'wenn KAPRIG Befehlssatz, dann Befehls_anzahl = Split(befehlsdaten , Befehls_teilstring(1) , "#") 'aus Befehlsdaten in 5 Teilstrings/Arrays, getrennt durch "#", aufteilen Befehlsdaten = "" 'befehlsdaten leeren Gosub Commands ' Auswertung der Befehle/Teilstrings in Subroutine "commands" End If ') '==========GPS-Auswertung (NL-504ETT)===================================== Gps_zeichen = Inkey(#1) ' Zeichen einlesen If Gps_zeichen = 36 Then Input #1 , Gpsdaten Noecho ' ist "$" vorhanden, dann Daten/SoftUART #1 einlesen >> Gpsdaten Gps_header = Mid(gpsdaten , 1 , 5) 'ersten 5 Zeichen nach Gps_header einlesen If Gps_header = "GPGGA" Then 'wenn GPGGA Befehlssatz, dann Gps_anzahl = Split(gpsdaten , Gps_teilstring(1) , ",") 'aus Gpsdaten in 14 Teilstrings/Arrays, getrennt durch ",", aufteilen Gps_anzahl = Split(gps_teilstring(10) , Gps_hoehenteilstring(1) , ".") 'Teilstring 10, Höhe xxx.xx, aufteilen in Wert vor dem "." Gpsdaten = "" 'gpsdaten leeren Gpshoehe = Gps_hoehenteilstring(1) 'gpshoehe = Höhe in Metern vor dem Komma über Meeresspiegel End If Call Xbee ' kontinuierliches Senden der Parameter Loop Eop: Close #1 End '----------------Befehlsbibliothek "Commands"----------------------------------- Commands: Select Case Befehls_teilstring(2) Case "TAKEPHOTO" ' Teilstring(2) auswerten auf "TAKEPHOTO" Locate 4 , 1 Lcd Befehls_teilstring(2) Pwr_all = 0 Waitms 500 Pwr_all = 0 Quittierung = "Photo is taken" Waitms 500 Quittierung = "" Cls Pwr_all = 1 Case "PAN_left" A = 60 Compare1a = A Pan1 = 1 Pan2 = 0 Waitms 30 Pan1 = 0 Pan2 = 0 Case "PAN_right" A = 60 Compare1a = A Pan1 = 0 Pan2 = 1 Waitms 30 Pan1 = 0 Pan2 = 0 End Select Select Case Befehls_teilstring(3) ' hier optionale Auswertung von weiteren Teilstrings Case "" Locate 4 , 1 Lcd Befehls_teilstring(3) "" End Select Return '----------------LiPo-Saver/Abschaltung "Lipo_saver"---------------------------- Lipo_saver: Quittierung = "LiPo-Saver!" ' Quittierung an Bodenstation Stop Adc ' ADC abschalten um Strom zu sparen Stop Ac ' AC abschalten um Strom zu sparen Pwr_all = 0 ' testweise Ausgabe PWR_all = 0 --> hier: LED an! Locate 4 , 1 Print "LiPo-Saver!" Waitms 500 Quittierung = "" 'Quittierung löschen Return '----------------Sonstiges------------------------------------------------------ Sub Xbee Print "§GROUND#" ; Quittierung ; "#" ; Zellspannung ; "#" ; Gpshoehe ; "#" ; Temperatur ; "#" Print Gps_header End Sub |
Datum:
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...
Datum:
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
Datum:
Hallo, nein, angeschlossen ist nur ein Servo, keine Kamera/kein GPS/Kein XBee
Datum:
Es war ein Probleem mit der 1wire-Pin Belegung!!!
Datum:
Schön zu lesen, dass es nun funktioniert. Noch viel Spaß beim Projekt!

