Cho e hỏi là ví dụ với đoạn code nhỏ như sau của con ds1307
#include <mega16.h>
unsigned char hour, min, sec;
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Declare your global variables here
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: On
// Square wave frequency: 1Hz
rtc_init(0,1,0);
rtc_set_time(10,10,10) ;
rtc_set_date(23,10,1011);
while (1)
{
rtc_get_time(&hour,&min,&sec);
}
}
Sau khi e đặt ngày tháng và có lệnh get_time như vậy thì kiểu dữ liệu của sec hay hour hay min xuất ra sẽ là kiểu gì vậy ak?e thay môt số tài liệu là BCd thì phải và nếu như vậy thao tác trên đó sẽ ntn.E đang làm con ds1307 tren led 7 đoạn.theo e nghĩ ví dụ như phần giây đang có giá trị là 42s gia tri bcd là 10000010 khi đó mình dùng các lệnh dịch >> để hiển thị phần chục và đơn vị của giây phải ko ?
#include <mega16.h>
unsigned char hour, min, sec;
// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
// DS1307 Real Time Clock functions
#include <ds1307.h>
// Declare your global variables here
void main(void)
{
PORTA=0x00;
DDRA=0xFF;
PORTB=0x00;
DDRB=0xFF;
PORTC=0x00;
DDRC=0x00;
PORTD=0x00;
DDRD=0x00;
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;
// I2C Bus initialization
i2c_init();
// DS1307 Real Time Clock initialization
// Square wave output on pin SQW/OUT: On
// Square wave frequency: 1Hz
rtc_init(0,1,0);
rtc_set_time(10,10,10) ;
rtc_set_date(23,10,1011);
while (1)
{
rtc_get_time(&hour,&min,&sec);
}
}
Sau khi e đặt ngày tháng và có lệnh get_time như vậy thì kiểu dữ liệu của sec hay hour hay min xuất ra sẽ là kiểu gì vậy ak?e thay môt số tài liệu là BCd thì phải và nếu như vậy thao tác trên đó sẽ ntn.E đang làm con ds1307 tren led 7 đoạn.theo e nghĩ ví dụ như phần giây đang có giá trị là 42s gia tri bcd là 10000010 khi đó mình dùng các lệnh dịch >> để hiển thị phần chục và đơn vị của giây phải ko ?
Comment