Top secrets sources NedoPC pentevo

Rev

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

#include "pff.h"                /* Petit FatFs configurations and declarations */
#include <avr/io.h>
#include <util/delay.h>
#include "../pins.h"
#include <string.h>

extern BYTE dbuf[];
//BYTE spi_io(BYTE spi);
void rs232_transmit(BYTE data);
BYTE rs232_receive(void);
void to_log(char* ptr);
void put_buffer(WORD size);

FATFS fs;
DIR dir;
FILINFO fi;
void pff_test(void){
        UINT res;
        do
        {
                //PORTF &= 0b11011111;
                //while(spi_io(0xff)) {}
                res = pf_mount(&fs);
                to_log("\r\npf_mount: ");
                rs232_transmit(res + '0');
                if(res){
                        continue;
                }
                to_log("\r\npf_opendir: ");
                rs232_transmit(pf_opendir(&dir,"")+'0');
                to_log("\r\nselect conf:\r\n");
                res = 1;
                while(1){
                        pf_readdir(&dir, &fi);
                        if(fi.fname[0]==0x00) break;
                        if(strstr(fi.fname, ".RBF") == ((void*) 0x0000)) continue;
                        rs232_transmit(res+'0');
                        to_log(": ");
                        to_log(fi.fname);
                        to_log("\r\n");
                        res++;
                }
                unsigned char i = 0;
                while(--i){
                        if((res = rs232_receive())!=0x00) break;
                        _delay_ms(20);
                }
                //rs232_transmit(res);
                if(res) {
                        res = res - '0';
                }
               
                pf_opendir(&dir,"");
                while(res){
                        pf_readdir(&dir, &fi);
                        if(fi.fname[0]==0x00) break;
                        if(strstr(fi.fname, ".RBF") == ((void*) 0x0000)) continue;
                        res--;
                }
                to_log(fi.fname);
               
               
                // power led OFF
                LED_PORT |= 1<<LED;

                DDRF |= (1<<nCONFIG); // pull low for a time
                _delay_ms(20);
                DDRF &= ~(1<<nCONFIG);
                while( !(PINF & (1<<nSTATUS)) ); // wait ready
                if(fi.fname[0]) {
                        res = pf_open(fi.fname);
                }else{
                        res = pf_open("TOP.RBF");
                }
                to_log("\r\npf_open: ");
                rs232_transmit(res + '0');
                if(res){
                        continue;
               
                }
                to_log("\r\npf_read");
                while(pf_read(dbuf, 2048, &res)==0x00){
                        rs232_transmit('.');
                        if(res == 0x0000) break;
                        put_buffer(res);
                }
                LED_PORT &= ~(1<<LED);
                _delay_ms(20);
        } while( !(CONF_DONE_PIN & (1<<CONF_DONE)) );
               
        /*
        rs232_transmit(pf_opendir(&dir,"")+'0');
        to_log("\r\nread dir:\r\n");
        while(1){
                pf_readdir(&dir, &fi);
                if(fi.fname[0]==0x00) break;
                to_log(fi.fname);
        to_log("\r\n");
        }
        */

}