Subversion Repositories pentevo

Rev

Rev 916 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. #include "pff.h"                /* Petit FatFs configurations and declarations */
  2. #include <avr/io.h>
  3. #include <util/delay.h>
  4. #include "../pins.h"
  5. #include <string.h>
  6.  
  7. extern BYTE dbuf[];
  8. //BYTE spi_io(BYTE spi);
  9. void rs232_transmit(BYTE data);
  10. BYTE rs232_receive(void);
  11. void to_log(char* ptr);
  12. void put_buffer(WORD size);
  13.  
  14. FATFS fs;
  15. DIR dir;
  16. FILINFO fi;
  17. void pff_test(void){
  18.         UINT res;
  19.         do
  20.         {
  21.                 //PORTF &= 0b11011111;
  22.                 //while(spi_io(0xff)) {}
  23.                 res = pf_mount(&fs);
  24.                 to_log("\r\npf_mount: ");
  25.                 rs232_transmit(res + '0');
  26.                 if(res){
  27.                         continue;
  28.                 }
  29.                 to_log("\r\npf_opendir: ");
  30.                 rs232_transmit(pf_opendir(&dir,"")+'0');
  31.                 to_log("\r\nselect conf:\r\n");
  32.                 res = 1;
  33.                 while(1){
  34.                         pf_readdir(&dir, &fi);
  35.                         if(fi.fname[0]==0x00) break;
  36.                         if(strstr(fi.fname, ".RBF") == ((void*) 0x0000)) continue;
  37.                         rs232_transmit(res+'0');
  38.                         to_log(": ");
  39.                         to_log(fi.fname);
  40.                         to_log("\r\n");
  41.                         res++;
  42.                 }
  43.                 unsigned char i = 0;
  44.                 while(--i){
  45.                         if((res = rs232_receive())!=0x00) break;
  46.                         _delay_ms(20);
  47.                 }
  48.                 //rs232_transmit(res);
  49.                 if(res) {
  50.                         res = res - '0';
  51.                 }
  52.                
  53.                 pf_opendir(&dir,"");
  54.                 while(res){
  55.                         pf_readdir(&dir, &fi);
  56.                         if(fi.fname[0]==0x00) break;
  57.                         if(strstr(fi.fname, ".RBF") == ((void*) 0x0000)) continue;
  58.                         res--;
  59.                 }
  60.                 to_log(fi.fname);
  61.                
  62.                
  63.                 // power led OFF
  64.                 LED_PORT |= 1<<LED;
  65.  
  66.                 DDRF |= (1<<nCONFIG); // pull low for a time
  67.                 _delay_ms(20);
  68.                 DDRF &= ~(1<<nCONFIG);
  69.                 while( !(PINF & (1<<nSTATUS)) ); // wait ready
  70.                 if(fi.fname[0]) {
  71.                         res = pf_open(fi.fname);
  72.                 }else{
  73.                         res = pf_open("TOP.RBF");
  74.                 }
  75.                 to_log("\r\npf_open: ");
  76.                 rs232_transmit(res + '0');
  77.                 if(res){
  78.                         continue;
  79.                
  80.                 }
  81.                 to_log("\r\npf_read");
  82.                 while(pf_read(dbuf, 2048, &res)==0x00){
  83.                         rs232_transmit('.');
  84.                         if(res == 0x0000) break;
  85.                         put_buffer(res);
  86.                 }
  87.                 LED_PORT &= ~(1<<LED);
  88.                 _delay_ms(20);
  89.         } while( !(CONF_DONE_PIN & (1<<CONF_DONE)) );
  90.                
  91.         /*
  92.         rs232_transmit(pf_opendir(&dir,"")+'0');
  93.         to_log("\r\nread dir:\r\n");
  94.         while(1){
  95.                 pf_readdir(&dir, &fi);
  96.                 if(fi.fname[0]==0x00) break;
  97.                 to_log(fi.fname);
  98.         to_log("\r\n");
  99.         }
  100.         */
  101. }