Подключение SD карты и строчного дисплея к atmega

 

мэлт

sd arduino

 

Простая программа для общения с SD картой и многострочным дисплеем. Были взяты уже готовые библиотке в качестве основы и доработаны. Программа сичтывает данные из файловой системы с SD карты и показывает как файловый менеджер информацию о файловой системе на экран.

Ссылка на архив с исходным кодом arov.zip

Стоит обратить на функцию отдельно

PrintStr (str);

Эта функция печатает строку на экран следующим образом. Вместо первой строки встает вторая строка, всесто второй новая str, далее идет задержка около секунды (время задержки отдельно задается макросом). Таким образом реализуется плавный переход между строками, по сути аналог бегущий строки. Это позволяет видить последний вывод и текущий на экране, при этом способе информации воспринимается наиболее понятно. С помощью этой функции по очереди на экран выдается содержимое файловой системы.

DisplayRout();

Используется в бесконечном цикле и просто по очереди выводит все символы экрана. Используется исключительно для проверки работоспособности дисплея.

 


Расшифровка исходных кодов

int main( void )

{	 
	IOInit ();					//  Init Timer2
	LCDinit();
	LCDcursorOFF(); //  Выключаем курсоор
	LCDclr();  			//  Очищаем дисплей
	FRESULT f_err_code;
	static FATFS FATFS_Obj;
	FIL fil_obj;
	disk_initialize(0);		//  Init drive	
	f_err_code = f_mount(0, &FATFS_Obj);	//  Mount Fat Fs
	PrintStr ("mounting FAT ");
	f_err_code = f_open(&fil_obj, "newfile.txt", FA_READ);	  //  Open newfile for reading
	PrintStr ("open newfile.txt");
	if (f_err_code)
	{
		PrintStr("FAIL");
	}
	else
	{
		PrintStr ("OK");
		PrintStr ("data in newfile.txt:");	
		char buff[12] = {0};
		f_gets (buff, 12, &fil_obj);	//  Read data from newfile
		f_err_code = f_close(&fil_obj);
		PrintStr (buff);	
	}
	f_err_code = f_open(&fil_obj, "new.txt",FA_CREATE_NEW | FA_WRITE);	//  Create newfile into newdir
	PrintStr ("creating newfile ");
		
	if(!f_err_code)
		PrintStr ("OK");
	else
		PrintStr("FAIL");
	f_puts ("creating nad adnandnad", &fil_obj);		//  Writing to newfile
	f_err_code = f_close(&fil_obj);		//  Close newfile
	PrintStr ("closing newfile.txt ");
	PrintStr("scaning newdir:");
	scan_files ("0:/");							//  Scan newdir
	PrintStr("scaning ended");
									
	f_err_code = f_mount(0, NULL);			//  Unmount Fat Fs
	PrintStr ("unmounting FAT ");
	while(1)
	{
	//	_delay_ms(300);
	//	DisplayRout();
//		_proc_LCD();
	}
}