Zur Übersicht - INFO - Neueste 50 Beiträge - Neuer Beitrag - Suchen - Zum C-Control-I-Forum - Zum C-Control-II-Forum

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
Ich nutze:
CC-Pro 128 Application Board
> > 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)