با سلام
من قصد ساخت ساعت با M48T86 دارم ، این IC روی مادر برد های رایانه موجود می باشد ، با توجه به این که این IC دارای باتری Backup و کریستال داخلی می باشد از کیفیت بالایی برخوردار می باشد و نیازی به استفاده از باتری Backup و کریستال های بی کیفیت موجود در بازار که موجب مشکل در کار IC های ساعت دیگری همچون DS1307 شده است نمی باشد .
تصویر زیر نحوه قرار گیری Pin های این IC رو نشان می دهد و لینک زیر نیز فایل هدر برای راه اندازی این IC می باشد .
این IC قبلا توسط جناب آقای امید حبیبی راه اندازی شده است که در وبلاگ ایشان می توانید برنامه رو مشاهده کنید .
ولی تکرار دوباره این بحث این است که آقای حبیبی در پروژه مرتبط از MMC و Deboug استفاده کرده اند و دستورات راه اندازی ای IC در بین درستورات موجود در برنامه مبحم به نظر می رسد ، من در ابتدا برنامه ایشان رو می گزارم و از دوستان درخواست دارم که نحوه برنامه نویسی این IC رو به توضیح دهند و دستورات مربوطه را اعلام نمایند .
لینک دانلود فایل هدر :
سرور1 (لینک مستقیم) : http://up.iranblog.com/images/t9zexje70rsgqrxdinl.zip
سرور2 : http://www.mediafire.com/?20r1vxrr1cu7kuk

برنامه آقای امید حبیبی :
/*----------------------------------------------------------------------------
* RL-ARM - FlashFS
*----------------------------------------------------------------------------
* Name: SD_FILE.C
* Purpose: File manipulation example program
*----------------------------------------------------------------------------
* By omid habibi
* Tuch MMC LCD 2.6 inch With FAt suport
*---------------------------------------------------------------------------*/
#include <AT91SAM7X256.H>
#include "lib_AT91SAM7X256.h"
#include <RTL.h> /* RTL kernel functions & defines */
#include <stdio.h> /* standard I/O .h-file */
#include <ctype.h> /* character functions */
#include <string.h> /* string and memory functions */
#include "File_Config.h"
#include "SD_File.h"
#include "debug.h"
#include <delay.h>
#include "M48T86.h"
#define set_led() *AT91C_PIOB_ODSR = (1<<19);
#define reset_led() *AT91C_PIOB_ODSR = (0<<19);
#define toggle_led() if(*AT91C_PIOB_ODSR == (0<<19)){*AT91C_PIOB_ODSR = (1<<19);}else{*AT91C_PIOB_ODSR = (0<<19);}
char *sp,*cp,*next,file_open;
int count;
unsigned int omid;
unsigned long int data_pin;
int old_data;
char lcd_buffer[20];
FILE *ff;
/*----------------------------------------------------------------------------
* Main:
*---------------------------------------------------------------------------*/
int main (void) {
//char *sp,*cp,*next;
// unsigned char my_data=170;char count_data=8;
//AT91F_PIO_CfgInput(AT91C_BASE_PIOB,3<<2);
//*AT91C_PIOB_ODR=(3<<2);
//AT91F_PIO_CfgPullup(AT91C_BASE_PIOB,3<<2);
//*AT91C_PIOA_OER=(8191<<0); //if 8191 beshe oonvaght khorooji sefr mishe magar inke set **** * age varesh dari halate mamooli tamie pinah pullup hastan
*AT91C_PIOB_PER = (15<<0); //b.0--b.3 led
*AT91C_PIOB_OER = (15<<0);
*AT91C_PIOB_OWER = (15<<0);
*AT91C_PMC_PCER = (0xffff << AT91C_ID_PIOA)|(0xffff << AT91C_ID_PIOB);
d_init(115200);
printf(" in the name of Allah\n"
;
init_m48t86();printf("RTC Inited\n"
;
//write_clock(0,9,53); //please wait a sec betwin write a date and time
//write_date(11,3,9,3);//2011 . month=2 . day=9 . 2shanbe==3
printf(" ..: RTC table :.. \n"
;
while (1)
{
delay_s(3);
read_clock();
printf("%d:%d:%d ",time.hour,time.minute,time.second);
printf("* %d/%d/%d ",time.year,time.month,time.day);
printf("today is %dth of the week \n",time.week);
delay_s(3);
}
}
/*
for(omid=0;omid<6;omid++)
{
*AT91C_PIOA_ODSR= (4095<<0);
*AT91C_PIOB_ODSR= (15<<0);
delay_ms(300);
*AT91C_PIOA_ODSR= (0<<0);
*AT91C_PIOB_ODSR= (0<<0);
delay_ms(600);
}
set_rtc_en(); delay_ms(800); reset_rtc_en();
set_rtc_as(); delay_ms(800); reset_rtc_as();
set_rtc_rw(); delay_ms(800); reset_rtc_rw();
set_rtc_ds(); delay_ms(800); reset_rtc_ds();
cfg_input();
for(omid=0;omid<3;omid++)
{
data_pin=*AT91C_PIOA_PDSR&(255<<0);
printf("data is %d \n",data_pin);
delay_ms(400);
} */
با سپاس
من قصد ساخت ساعت با M48T86 دارم ، این IC روی مادر برد های رایانه موجود می باشد ، با توجه به این که این IC دارای باتری Backup و کریستال داخلی می باشد از کیفیت بالایی برخوردار می باشد و نیازی به استفاده از باتری Backup و کریستال های بی کیفیت موجود در بازار که موجب مشکل در کار IC های ساعت دیگری همچون DS1307 شده است نمی باشد .
تصویر زیر نحوه قرار گیری Pin های این IC رو نشان می دهد و لینک زیر نیز فایل هدر برای راه اندازی این IC می باشد .
این IC قبلا توسط جناب آقای امید حبیبی راه اندازی شده است که در وبلاگ ایشان می توانید برنامه رو مشاهده کنید .
ولی تکرار دوباره این بحث این است که آقای حبیبی در پروژه مرتبط از MMC و Deboug استفاده کرده اند و دستورات راه اندازی ای IC در بین درستورات موجود در برنامه مبحم به نظر می رسد ، من در ابتدا برنامه ایشان رو می گزارم و از دوستان درخواست دارم که نحوه برنامه نویسی این IC رو به توضیح دهند و دستورات مربوطه را اعلام نمایند .
لینک دانلود فایل هدر :
سرور1 (لینک مستقیم) : http://up.iranblog.com/images/t9zexje70rsgqrxdinl.zip
سرور2 : http://www.mediafire.com/?20r1vxrr1cu7kuk

برنامه آقای امید حبیبی :
/*----------------------------------------------------------------------------
* RL-ARM - FlashFS
*----------------------------------------------------------------------------
* Name: SD_FILE.C
* Purpose: File manipulation example program
*----------------------------------------------------------------------------
* By omid habibi
* Tuch MMC LCD 2.6 inch With FAt suport
*---------------------------------------------------------------------------*/
#include <AT91SAM7X256.H>
#include "lib_AT91SAM7X256.h"
#include <RTL.h> /* RTL kernel functions & defines */
#include <stdio.h> /* standard I/O .h-file */
#include <ctype.h> /* character functions */
#include <string.h> /* string and memory functions */
#include "File_Config.h"
#include "SD_File.h"
#include "debug.h"
#include <delay.h>
#include "M48T86.h"
#define set_led() *AT91C_PIOB_ODSR = (1<<19);
#define reset_led() *AT91C_PIOB_ODSR = (0<<19);
#define toggle_led() if(*AT91C_PIOB_ODSR == (0<<19)){*AT91C_PIOB_ODSR = (1<<19);}else{*AT91C_PIOB_ODSR = (0<<19);}
char *sp,*cp,*next,file_open;
int count;
unsigned int omid;
unsigned long int data_pin;
int old_data;
char lcd_buffer[20];
FILE *ff;
/*----------------------------------------------------------------------------
* Main:
*---------------------------------------------------------------------------*/
int main (void) {
//char *sp,*cp,*next;
// unsigned char my_data=170;char count_data=8;
//AT91F_PIO_CfgInput(AT91C_BASE_PIOB,3<<2);
//*AT91C_PIOB_ODR=(3<<2);
//AT91F_PIO_CfgPullup(AT91C_BASE_PIOB,3<<2);
//*AT91C_PIOA_OER=(8191<<0); //if 8191 beshe oonvaght khorooji sefr mishe magar inke set **** * age varesh dari halate mamooli tamie pinah pullup hastan
*AT91C_PIOB_PER = (15<<0); //b.0--b.3 led
*AT91C_PIOB_OER = (15<<0);
*AT91C_PIOB_OWER = (15<<0);
*AT91C_PMC_PCER = (0xffff << AT91C_ID_PIOA)|(0xffff << AT91C_ID_PIOB);
d_init(115200);
printf(" in the name of Allah\n"

init_m48t86();printf("RTC Inited\n"

//write_clock(0,9,53); //please wait a sec betwin write a date and time

//write_date(11,3,9,3);//2011 . month=2 . day=9 . 2shanbe==3
printf(" ..: RTC table :.. \n"

while (1)
{
delay_s(3);
read_clock();
printf("%d:%d:%d ",time.hour,time.minute,time.second);
printf("* %d/%d/%d ",time.year,time.month,time.day);
printf("today is %dth of the week \n",time.week);
delay_s(3);
}
}
/*
for(omid=0;omid<6;omid++)
{
*AT91C_PIOA_ODSR= (4095<<0);
*AT91C_PIOB_ODSR= (15<<0);
delay_ms(300);
*AT91C_PIOA_ODSR= (0<<0);
*AT91C_PIOB_ODSR= (0<<0);
delay_ms(600);
}
set_rtc_en(); delay_ms(800); reset_rtc_en();
set_rtc_as(); delay_ms(800); reset_rtc_as();
set_rtc_rw(); delay_ms(800); reset_rtc_rw();
set_rtc_ds(); delay_ms(800); reset_rtc_ds();
cfg_input();
for(omid=0;omid<3;omid++)
{
data_pin=*AT91C_PIOA_PDSR&(255<<0);
printf("data is %d \n",data_pin);
delay_ms(400);
} */
با سپاس
دیدگاه