Re: Fehler beim Schreiben auf SDC & Autostart Kategorie: CC-Pro Unit & Appl.Board (von UFABRD - 16.01.2014 15:43) | ||
Als Antwort auf Re: Fehler beim Schreiben auf SDC & Autostart von Udo - 4.12.2013 22:20 | ||
| ||
> > Hallo miteinander > > Bin noch ein Greenhorn auf dem Gebiet und versuche mich mit einem kleinen Projekt . > > Verwende die C-Control Pro MEGA128 Application PCB + DCF-Antenne für RTC + 4x16 LCD-Display + > > DS18S20 Temperatursensor um eine Akku �berwachung ( Ladung - Entladung ) mit Ah-erfassung sowie > > ein DSC-Interface von Conrad als Daten Logger umzusetzen. > > Verwende derzeit Die IDE 2.13.0.15 und kann , wenn ich mein Programm (Code in CC) über RS232C an > > das Appl.PCB übertragen habe und mit dem Blitz-Buton starte, auch vernünftige Datensätze schreiben > > ohne Fehlermeldungen bei der Datenaufzeichnung zu bekommen. > > Des weiteren ist mir aufgefallen ( Programm läuft über 24 Stunden ( Tag und Nacht ) > > wenn ich am nächsten Tag den PC anwerfe werden für einige Zeit Fehler produziert ( 20-50 Minuten > > lang e9) und keine Datenaufzeichnung. Renkt sich aber dann wieder ein und die Folgedaten sind ok. > > Starte ich ohne PC-Verbindung ( RS-Schnittstelle ) durch "PWR on" am Board so erhalte ich e9 !! > > Im Detail zuerst " schreibgeschütz und letzlich FR_INVALID_OBJECT --> e9 . > > Habe daraufhin die neue IDE 2.31.0.89 mal versucht . > > Dabei verhält sich mein Code deutlich anders PG3 --> LED geht an obwohl auf aus gesetzt. > > Kommt wohl aus den DCF-Routinen ; die LED wird da als Sekunden-Tick verwendet. > > Die fest an einem Poti eingestellte Spannung ( ein Teiler) der 5 Volt ( immer 5,01 Volt) liegt > > ohne Veränderung ( gleicher ADC Eingang) um 0,35V höher -- kann ich nicht verstehen -- der vor > > dem Port befindliche 10k + C als Tiefpass ist unverändert . Wird bei der neuen IDE anders > > initialisiert ( interne Beschaltung ) ??? In meinem Code wird nichts veändert !!!! > > Das Phänomen Fehlermeldung bei neu übertragenem Code bleib bestehen . Die DCF Uhr tickt auch falsch > > wird nicht richtig übernommen. > > Wer hat ähnliches zu berichten. > > Könnte mit der alten IDE leben wenn ich den RS-port nicht benutzen mu�. > > Bin für jegliche Hilfe sehr dankbar . > > Danke und schöne Grüsse aus Oberschwaben > > Udo > > > Hallo an das Forum !! > Das ist noch keinen Antwort in dem Sinne, nur eine weitere Feststellung welche ich gemacht habe. > Ich hoffe jemand ??? kann mir das Problem erklären --- stehe wirklich auf dem Schlauch !! > folgender code läuft bei mir aus der IDE 2.13.0.15 mit dem Blitz Buton sauber ab und schreibt auf > Das LCD und auf die SDC einen DIR sowie mehrere files. > Entferne ich den RSStecker und Starte über PCB PWR on dan erfolgt eine Anzeige am LCD aber keine > Daten oder oder files auf der SDC . > > Was ist da anders ????? > > hier der code: > /******************************************************************************* > > Project Name: Write_File.cprj > Required Libs's: IntFunc_lib.cc > Files: Write_File.cc > Writer: CCPRO-TEAM modified by U.Bernard 2.12.2013 > Date: 02.09.2013 > Function: 1.Check capacity of the SDCard > 2.Create a new folder and write a new file max 20 then > Access- LED is blinking or capacity <1 kB > 3. write 2 lines Text into the file > and show in the Debugger-Window nr. of bytes written > Display Clock on LCD Display ( 4x16 char ) > ------------------------------------------------------------------------------ > MEGA Serie: > Or C-Control PRO MEGA128 UNIT + Application PCB no USB !!! > ------------------------------------------------------------------------------ > Note: ----- PB0 - PB6 and PE5 Jumper removed sonst Konflikt mit USB Atiny > SDC-Access-LED on PBG Port 52 > MEGA128 -> C-Control Pro SD-Card holder required! > C-Control SD-Card Interface Conrad BN: 197220 > > *******************************************************************************/ > // must be global declared > byte fat[562]; > byte fil[32]; > dword attrib[4]; > dword size; > int FileNr; > char FileName[20]; > > byte minute, hour; // Global variables > byte day , mon , year; > byte sec, last_sec; > > > /*------------------------------------------------------------------------------ > name: programm_exit > input: none > output: none > description: Endless loop with flashing accsess LED > ------------------------------------------------------------------------------*/ > void programm_exit(void) > { > Port_DataDirBit(52,1); > Port_WriteBit(52,0); > > // toggle LED on PG4 (accsess led) > while(1) > { > Port_ToggleBit(52); > AbsDelay(100); > } > > } > void Display_Time(void) > { > char str[10]; // Output String > > hour=Clock_GetVal(CLOCK_HOUR); > minute=Clock_GetVal(CLOCK_MIN); > Str_Printf(str, "%02d:%02d:%02d", hour, minute, sec); > LCD_CursorPos(0); // Set LCD Cursor > LCD_WriteText(str); > > day=Clock_GetVal(CLOCK_DAY); > mon=Clock_GetVal(CLOCK_MON); > year=Clock_GetVal(CLOCK_YEAR); > Str_Printf(str, "%02d-%02d-%02d", day,mon,year); > LCD_CursorPos(0xC0); // Set LCD Cursor 2te Zeile > LCD_WriteText(str); > } > > > /*------------------------------------------------------------------------------ > name: main > input: none > output: none > description: Main programm > ------------------------------------------------------------------------------*/ > void main(void) > { > //------------ Uhrzeit anzeigen auf LCD -------------------------------------- > LCD_Init(); // Init Keyboard > LCD_ClearLCD(); // Clear Display > LCD_CursorOff(); // Turn Display Cursor off > //void Clock_SetTime(byte hour, byte min, byte sec, char corr); > Clock_SetTime(00,00,00,80); // Set date and start time > > // void Clock_SetDate(byte day, byte mon, byte year); > Clock_SetDate(04,11,13); > // n=0; // Var für Zeichenposition > last_sec=Clock_GetVal(CLOCK_SEC); > > byte res; // Fehler Byte siehe Error Handling > char buf[100], text[100]; // Speicher für Schreiben , Text-Speicher 101byte > int i; > int newfile; // Laufvariable für zusätzliche Einträge > word bytes_written[1]; > char free[20]; > Display_Time(); > for(newfile=0; newfile < 20 ; newfile++) > { > { > sec=Clock_GetVal(CLOCK_SEC); > if(sec!=last_sec) Display_Time(); > last_sec=sec; > > > > } > /**************************power on SD-Drive **********************************/ > power_on_sdcard(); > /*************************** SD-Card reset **********************************/ > reset_sdcard(); > /****************************accsess led on siehe SD-Drive *******************/ > accsess_led_on(); > /**************************** SD-Card initialize *****************************/ > SDC_Init(fat); > /**********************storage capacity of the SD-Card , <1K Programm exit*****/ > size=get_free_sdcard("0:/"); > // storage capacity is to low (< 1kByte), exit programm > Str_Printf(free,"bytesfree: %ldrn",size); > Msg_WriteText(free); > if(size<1) > { > programm_exit(); > } > /******************* create new directorie ***********************************/ > SDC_MkDir("0:/CC-PRO"); > /***************** open or create file to write *******************************/ > > while(1) > { > FileNr++; > Str_Printf(FileName,"0:/CC-PRO/log%d.txt",FileNr); > > // exist file? No then creat new file > res=SDC_FOpen(fil, FileName, FA_READ|FA_WRITE|FA_OPEN_EXISTING); > if(res!=0) > { > SDC_FOpen(fil, FileName, FA_WRITE|FA_CREATE_ALWAYS); > break; > } > > // maximum file nummbers is 20 > if(FileNr>20)programm_exit(); > } > > > > /*********************** write string to file ********************************/ > > buf= "Hello World. C-Control Pro now with SD-Card routines!rn"; > SDC_FWrite(fil, buf, Str_Len(buf), bytes_written); > > Str_Printf(text, "bytes written:%dr", bytes_written[0]); > Msg_WriteText(text); > > // write buffer to SD-Card > SDC_FSync(fil); > > /*************************** close file ************************************/ > SDC_FClose(fil); > > /************************ append strings to file ****************************/ > > res=SDC_FStat(FileName, attrib); > size=attrib[0]; > SDC_FOpen(fil, FileName, FA_READ|FA_WRITE|FA_OPEN_EXISTING); > SDC_FSeek(fil, size); > > Str_Printf(buf,"Now we have a second string ,In the new File %d rn",(newfile+1)); > SDC_FWrite(fil, buf, Str_Len(buf), bytes_written); > SDC_FWrite(fil, free, Str_Len(free), bytes_written); > Str_Printf(text, "bytes written:%dr", bytes_written[0]); > Msg_WriteText(text); > // write buffer to SD-Card > SDC_FSync(fil); > > /************************** close file **************************************/ > SDC_FClose(fil); > > > /*************************** accsess led off ********************************/ > accsess_led_off(); > > > /***************************** power off ************************************/ > power_off_sdcard(); > //----------------------------- Warte Zeit 1 Minute -------------------------- > AbsDelay(60000); > } > } > > Kann das jemand bestätigen oder mache ich da etwas granatenmässig falsch ??? > > Help Help Help oder beser SOS > MfG > Udo Es ist einige Zeit vergangen und niemand hat sich gemeldet. In dieser Zeit war ich nicht untätig und habe das Problem für mich lösen können. Der Pferdefu� liegt im Detail. Man kann den WR-Kontakt nicht einfach auf "0" legen !! Das reicht nicht aus beim Application PCB. Der WR mu� mit dem PE5 Port verbunden sein. Ein offener Port macht dann die beschriebenen Probleme. Die Software läuft mit "Blitztaste" einige Zeit fehlerfrei hat aber Aussetzer !!! Ein PWR on start geht schief und erzeugt Fehlermeldungen gleich zu Beginn. Nach dem ich den WR mit PE5 verbunden habe ( wollte den Port anderweitig nutzen) läuft meine Anwendung fehlerfrei auch über längere Zeit. Den LED Anschluss kann man auf "0" legen der betätigt nur die LED Kontroll auf dem SDC-Adapter. MfG Udo | ||
Antwort schreiben Antworten: Re: Fehler beim Schreiben auf SDC & Autostart (von Max - 16.01.2014 17:34) |
Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum