日B视频 亚洲,啪啪啪网站一区二区,91色情精品久久,日日噜狠狠色综合久,超碰人妻少妇97在线,999青青视频,亚洲一区二卡,让本一区二区视频,日韩网站推荐

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

STK600之Atmega128硬件I2C 讀寫高精度時鐘芯片DS3231函數(shù)樣例

算法&編程學(xué)院 ? 來源:網(wǎng)絡(luò)整理 ? 作者:佚名 ? 2018-02-27 09:05 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

STK600 之 Atmega128硬件I2C 讀寫高精度時鐘芯片DS3231函數(shù)

STK600 用于程序的下載 連接JTAG口至mega128目標(biāo)板即可
//-----------------------------------------------------------------------------
unsigned char DS3231_DATA[19] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,};
unsigned char Date_Data[14] = {0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0x00};
unsigned char Data_temp[6] = {0x00,0x00,0x00,0x00,0x00,0x00};
unsigned char Buffer_Data[20] = {0x21,0x22,0x23,0x24,0x25,0x26,0x27,0x28,0x29,0x2A,0x2B,
0x2C,0x2D,0x2E,0x2F,0x30,0x31,0x32,0x33,0x34,};


void DS3221_initial(void)
{
DS3231_RESETH;
DS3231_RESETL;
delay_ms(300);
DS3231_RESETH;
}

void twi_start_state(void)
{
TWCR = TWCR | 0xA4;
twi_intcheck();
}

void twi_stop_state(void)
{
TWCR = TWCR | 0x94;
TWCR = TWCR | 0x84;
}


void twi_slaw(unsigned char address)
{
address = address << 1;
TWDR = address;
TWCR = TWCR & 0xDF;
TWCR = TWCR | 0x84;
}

void twi_slar(unsigned char address)
{
address = address << 1;
address = address | 0x01;
TWDR = address;
TWCR = TWCR & 0xDF;
TWCR = TWCR | 0x84;
}


void twi_wordadd_write(unsigned char address)
{
TWDR = address;
TWCR = TWCR & 0xDF;
TWCR = TWCR | 0x84;
}

void twi_datawrite(unsigned char data)
{
TWDR = data;
TWCR = TWCR | 0x84;
}

unsigned char twi_dataread(void)
{
unsigned char temp_a;

twi_intcheck();
temp_a = TWDR;
return temp_a;
}

void twi_MT(unsigned char sladdress,unsigned char wordaddress,unsigned char *ds3231data,unsigned char datalength)
{
unsigned char temp_a;
unsigned char temp_b;

twi_start_state();
twi_intcheck();
twi_slaw(sladdress);
twi_intcheck();
twi_wordadd_write(wordaddress);
twi_intcheck();

for(temp_a = 0;temp_a < datalength;temp_a++)
{
temp_b = *ds3231data;
twi_datawrite(temp_b);
++ds3231data;
twi_intcheck();
}
twi_intclear();
twi_stop_state();
}

void twi_MR(unsigned char sladdress,
unsigned char wordaddress,
unsigned char *ds3231data,
unsigned char datalength)
{
unsigned char temp_a;

twi_start_state();
twi_intcheck();
twi_slar(sladdress);
twi_intcheck();
twi_intclear();

for(temp_a = 0;temp_a < datalength;temp_a++)
{
*ds3231data = twi_dataread();
++ds3231data;
twi_intclear();
}
twi_stop_state();
}

void twi_MTR(unsigned char sladdress,
unsigned char wordaddress,
unsigned char *ds3231data,
unsigned char datalength)
{
unsigned char temp_a;

twi_start_state();
twi_intcheck();
twi_slaw(sladdress);
twi_intcheck();
twi_wordadd_write(wordaddress);
twi_intcheck();
twi_start_state();
twi_intcheck();
twi_slar(sladdress);
twi_intcheck();
twi_intclear();

for(temp_a = 0;temp_a < datalength;temp_a++)
{
*ds3231data = twi_dataread();
++ds3231data;
if(temp_a < (datalength - 1))
{
twi_intclear();
}
}
twi_intcheck();
TWCR = TWCR & 0xBF;
twi_stop_state();
TWCR = 0x44;
}


void twi_intcheck(void)
{
unsigned char temp_a;

temp_a = TWCR & 0x80;
while(temp_a == 0x00)
{
temp_a = TWCR & 0x80;
}
}


void twi_intclear(void)
{
TWCR = TWCR | 0x84;
}

void DS3231toDate(unsigned char *ds3231data,unsigned char *Datedata)
{
unsigned char temp_a;
for(temp_a = 0;temp_a < 7;temp_a++)
{
*Datedata = *ds3231data & 0x0F;
++Datedata;
*Datedata = *ds3231data >> 4;
++Datedata;
++ds3231data;
}
temp_a = 0;
}

void DS3231TD_set(unsigned char year,
unsigned char month,
unsigned char date,
unsigned char day,
unsigned char hour,
unsigned char minute,
unsigned char second,
unsigned char time_import,
unsigned char *ds3231data)
{
*ds3231data = second;
++ds3231data;
*ds3231data = minute;
++ds3231data;

if(time_import == Time12)
{
if(hour > 0x12)
{
hour = hour - 0x12;
}
else;
*ds3231data = hour | 0x40;
}
else
{
*ds3231data = hour & 0xBF;
}
++ds3231data;

*ds3231data = day;
++ds3231data;

*ds3231data = date;
++ds3231data;

*ds3231data = month;
++ds3231data;

*ds3231data = year;

twi_MT(DS3231address,0x00,&DS3231_DATA[0],7);
}

void temp_convert(unsigned char *temp_data,
unsigned char *ds3231data)
{
unsigned char temp_b;
temp_b = *ds3231data;
if((temp_b & 0x80) > 0)
{*temp_data = negative;}
else
{*temp_data = positive;}
temp_b = temp_b << 1; ?
temp_b = temp_b >> 1;
++temp_data;
*temp_data = temp_b / 100;
++temp_data;
*temp_data = (temp_b % 100) / 10;
++temp_data;
*temp_data = (temp_b % 100) % 10;
++ds3231data;
temp_b = *ds3231data;
temp_b = temp_b >> 6;
temp_b = temp_b * 25;
++temp_data;
*temp_data = temp_b / 10;
++temp_data;
*temp_data = temp_b % 10;
}

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • DS3231
    +關(guān)注

    關(guān)注

    2

    文章

    52

    瀏覽量

    24433
  • 時鐘芯片
    +關(guān)注

    關(guān)注

    2

    文章

    307

    瀏覽量

    42223
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點(diǎn)推薦

    探索ATmega128:8位微控制器的佼佼者

    探索ATmega128:8位微控制器的佼佼者 作為電子工程師,在我們的設(shè)計(jì)生涯中,微控制器的選型至關(guān)重要。它就像是我們電子系統(tǒng)的“大腦”,決定著系統(tǒng)的性能和功能。今天,我們就來深入探討一下Atmel
    的頭像 發(fā)表于 04-06 14:40 ?660次閱讀

    深入解析 MAX31328:高精度 I2C RTC 的卓越

    深入解析 MAX31328:高精度 I2C RTC 的卓越選 在電子設(shè)備的設(shè)計(jì)中,實(shí)時時鐘(RTC)是不可或缺的一部分,它為系統(tǒng)提供準(zhǔn)確的時間信息,確保設(shè)備的正常運(yùn)行。今天,我們將深
    的頭像 發(fā)表于 03-26 16:10 ?171次閱讀

    高精度實(shí)時時鐘DS3232M:功能特性與應(yīng)用解析

    高精度實(shí)時時鐘DS3232M:功能特性與應(yīng)用解析 在電子設(shè)備的設(shè)計(jì)中,精確的時間管理是許多應(yīng)用的基礎(chǔ)。DS3232M作為一款低功耗、高精度
    的頭像 發(fā)表于 03-24 16:05 ?221次閱讀

    DS3231M:高精度 I2C 實(shí)時時鐘的全方位解析

    DS3231M:高精度 I2C 實(shí)時時鐘的全方位解析 在電子設(shè)計(jì)領(lǐng)域,實(shí)時時鐘(RTC)是眾多系統(tǒng)不可或缺的一部分,它為設(shè)備提供精確的時間信
    的頭像 發(fā)表于 03-24 16:05 ?338次閱讀

    深入解析DS3232:高精度I2C實(shí)時時鐘的卓越

    深入解析DS3232:高精度I2C實(shí)時時鐘的卓越選 在電子設(shè)計(jì)領(lǐng)域,實(shí)時時鐘(RTC)是許多系
    的頭像 發(fā)表于 03-24 16:00 ?214次閱讀

    DS3234:高精度SPI總線實(shí)時時鐘的卓越

    DS3234:高精度SPI總線實(shí)時時鐘的卓越選 在電子設(shè)備中,實(shí)時時鐘(RTC)是確保設(shè)備準(zhǔn)確計(jì)時的關(guān)鍵組件。
    的頭像 發(fā)表于 03-24 16:00 ?243次閱讀

    探秘DS3231高精度RTC的卓越

    。下面就帶大家詳細(xì)了解DS3231這款高精度、I2C接口、集成RTC/TCXO/晶體的器件。 文件下載: DS3231.pdf 一、
    的頭像 發(fā)表于 03-24 15:45 ?279次閱讀

    深入剖析DS1340:I2C實(shí)時時鐘與涓流充電器的完美結(jié)合

    深入剖析DS1340:I2C實(shí)時時鐘與涓流充電器的完美結(jié)合 在電子設(shè)備的設(shè)計(jì)中,實(shí)時時鐘(RTC)是一個關(guān)鍵組件,它能為系統(tǒng)提供精確的時間和日期信息。Maxim Integrated推
    的頭像 發(fā)表于 03-24 09:50 ?191次閱讀

    探索DS1339A:低功耗I2C實(shí)時時鐘的卓越

    探索DS1339A:低功耗I2C實(shí)時時鐘的卓越選 在電子設(shè)計(jì)領(lǐng)域,實(shí)時時鐘(RTC)是許多系統(tǒng)中不可或缺的組件,它能為設(shè)備提供精確的時間和
    的頭像 發(fā)表于 03-24 09:30 ?353次閱讀

    深入解析DS1339 I2C串行實(shí)時時鐘:功能、特性與應(yīng)用

    深入解析DS1339 I2C串行實(shí)時時鐘:功能、特性與應(yīng)用 在電子設(shè)計(jì)領(lǐng)域,實(shí)時時鐘(RTC)是一種至關(guān)重要的組件,它能為系統(tǒng)提供精確的時間和日期信息。今天我們要探討的是Maxim
    的頭像 發(fā)表于 03-24 09:30 ?212次閱讀

    深入解析DS1338:一款功能強(qiáng)大的I2C實(shí)時時鐘芯片

    深入解析DS1338:一款功能強(qiáng)大的I2C實(shí)時時鐘芯片 在電子設(shè)計(jì)領(lǐng)域,實(shí)時時鐘(RTC)芯片
    的頭像 發(fā)表于 03-24 09:30 ?281次閱讀

    基于FPGA的I2C控制模塊設(shè)計(jì)

    I2C_WRITE_WDATA.v模塊實(shí)現(xiàn)I2C寫時序,I2C_Controller (I2C控制器)化了
    的頭像 發(fā)表于 12-26 09:48 ?6177次閱讀
    基于FPGA的<b class='flag-5'>I2C</b>控制模塊設(shè)計(jì)

    CW32單片機(jī)I2C接口來讀寫EEPROM芯片

    。 1.I2C讀寫EEPROM芯片中斷函數(shù)(I2C分為I2C1和
    發(fā)表于 12-09 07:43

    STM32H7CubeMX配置硬件I2C,讀寫失敗是什么問題呀?

    STM32H7CubeMX配置硬件I2C,讀寫失敗什么問題呀,同樣的操作F4和F1都能正常使用,應(yīng)該不存在i2c地址錯誤,操作都是一的,但
    發(fā)表于 06-12 06:21

    I2C通訊的實(shí)時時鐘芯片D8563

    功耗極低,有助于延長電池壽命,特別適合用于便攜式設(shè)備或長時間運(yùn)行的系統(tǒng)。此外,8563芯片還具備鬧鐘與定時器功能,通過I2C通信接口與外部設(shè)備進(jìn)行通信,具有高速率的特點(diǎn),使得數(shù)據(jù)交換更加高效。因此,它在智能家居系統(tǒng)中可用于控制設(shè)備
    的頭像 發(fā)表于 06-11 15:11 ?1337次閱讀
    <b class='flag-5'>I2C</b>通訊的實(shí)時<b class='flag-5'>時鐘</b><b class='flag-5'>芯片</b>D8563
    阿荣旗| 凤阳县| 南投市| 宜宾市| 锦屏县| 旬邑县| 仁寿县| 鄂托克前旗| 固镇县| 繁峙县| 怀集县| 庆安县| 崇信县| 江源县| 上饶县| 柞水县| 永康市| 曲阜市| 巫山县| 巴楚县| 宁陕县| 南华县| 剑川县| 独山县| 沾益县| 雅安市| 长垣县| 绥中县| 南和县| 板桥市| 洛南县| 九寨沟县| 西林县| 铁力市| 保德县| 临泽县| 梁平县| 刚察县| 肥西县| 江永县| 晴隆县|