<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>S12 / MagniV MicrocontrollersのトピックRe: plz check this code for DS1307 interface</title>
    <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130178#M1296</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Well, sorry but I'm not a "C" programmer...&lt;BR /&gt;&lt;BR /&gt;However, I thought the DS1307 was fixed at a slave address of 68h...&lt;BR /&gt;&lt;BR /&gt;I also seem to remember it being pretty adamant about 100khz max speed as well, so check your I2C speed.&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Tue, 10 Apr 2007 20:22:04 GMT</pubDate>
    <dc:creator>mke_et</dc:creator>
    <dc:date>2007-04-10T20:22:04Z</dc:date>
    <item>
      <title>plz check this code for DS1307 interface</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130177#M1295</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;hi all&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;i used the port b pins for interfacing the RTC&lt;/DIV&gt;&lt;DIV&gt;can any one check this code and inform me about my mistake&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;mc9s12xdt512.h&amp;gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; /* derivative information */&lt;/DIV&gt;&lt;DIV&gt;#include &amp;lt;stdio.h&amp;gt;&lt;BR /&gt;#include "Std_Types.h"&lt;/DIV&gt;&lt;DIV&gt;#define SDA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB5//PTC_PTC6&lt;BR /&gt;#define SCL&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PORTB_PB6//PTC_PTC5&lt;/DIV&gt;&lt;DIV&gt;#define DIR_SDA&amp;nbsp; DDRB_DDRB5//DDRC_DDRC6&lt;BR /&gt;#define DIR_SCL&amp;nbsp; DDRB_DDRB6//DDRC_DDRC5&lt;BR /&gt;#define SPEED&amp;nbsp; 4&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;#define HOLD&amp;nbsp;&amp;nbsp; 1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;#define SLAVE_ADDRESS&amp;nbsp;&amp;nbsp; 0xD0&amp;nbsp;&amp;nbsp;&lt;BR /&gt;#define LEN&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; 58&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;byte temp, dummy, RD_data, WR_data, ACK_flag, w, i;&lt;BR /&gt;byte own_sl_addr = 0xD0;&amp;nbsp;&lt;BR /&gt;byte RAM_Data[LEN];&lt;/DIV&gt;&lt;DIV&gt;byte RTC_reg[7] @0x700;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;byte Cntr_reg&amp;nbsp; @0x707;&lt;BR /&gt;typedef struct&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;byte Sec;&lt;BR /&gt;&amp;nbsp;byte Min;&lt;BR /&gt;&amp;nbsp;byte Hrs;&lt;BR /&gt;&amp;nbsp;byte Day;&lt;BR /&gt;&amp;nbsp;byte Date;&lt;BR /&gt;&amp;nbsp;byte Month;&lt;BR /&gt;&amp;nbsp;byte Year;&lt;BR /&gt;}sRTC;&lt;/DIV&gt;&lt;DIV&gt;volatile sRTC RTC @ 0x700s;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;#define Seconds&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Sec&lt;BR /&gt;#define Minutes&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Min&lt;BR /&gt;#define Hours&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Hrs&lt;BR /&gt;#define Day&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Day&lt;BR /&gt;#define Date&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Date&lt;BR /&gt;#define Month&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Month&lt;BR /&gt;#define Year&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; RTC.Year&lt;/DIV&gt;&lt;DIV&gt;#define RTC_REG_START&amp;nbsp;&amp;nbsp; 0x00&lt;BR /&gt;#define NV_RAM_START&amp;nbsp;&amp;nbsp;&amp;nbsp; 0x08&amp;nbsp;&lt;BR /&gt;/* Function definition */&lt;BR /&gt;void Init_Time_Default(void);&lt;BR /&gt;byte GetByte(void);&lt;BR /&gt;void WriteIICbus(byte data);&lt;BR /&gt;void Write_Control_reg(byte ctrl);&lt;BR /&gt;void Read_ACK(void);&lt;BR /&gt;void Write_ACK(void);&lt;BR /&gt;void StartBit(void);&lt;BR /&gt;void StopBit(void);&lt;BR /&gt;void Wait_time(byte time);&lt;BR /&gt;void Wait_sh(byte time);&lt;/DIV&gt;&lt;DIV&gt;void Init_Time_Default(void)&amp;nbsp; // see datasheet of DS1307;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;Seconds = 0x20;&lt;BR /&gt;&amp;nbsp;Minutes = 0x10;&lt;BR /&gt;&amp;nbsp;Hours = 0x12;&lt;BR /&gt;&amp;nbsp;Day =0x4;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; // day of week;&lt;BR /&gt;&amp;nbsp;Date = 0x11;&lt;BR /&gt;&amp;nbsp;Month = 0x5;&lt;BR /&gt;&amp;nbsp;Year = 0x6;&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void Write_Control_reg(byte ctrl)&amp;nbsp; // writes Cntr_reg to RTC;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;ACK_flag = 0;&lt;BR /&gt;&amp;nbsp;StartBit();&lt;BR /&gt;&amp;nbsp;WriteIICbus(SLAVE_ADDRESS);&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;WriteIICbus(7);&amp;nbsp; // write address of the Control register;&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;WriteIICbus(ctrl);&amp;nbsp; // write value into Control register;&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;StopBit();&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void Read_Control_reg(void)&amp;nbsp;&amp;nbsp; // reads Cntr_reg from RTC;&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;ACK_flag = 0;&lt;BR /&gt;&amp;nbsp;StartBit();&lt;BR /&gt;&amp;nbsp;WriteIICbus(SLAVE_ADDRESS); // RW bit = 0;&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;WriteIICbus(7);&amp;nbsp; // write address of the Control register;&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;StartBit();&lt;BR /&gt;&amp;nbsp;WriteIICbus(SLAVE_ADDRESS | 1); // RW bit = 1;&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;DIR_SDA = 0;&lt;BR /&gt;&amp;nbsp;Cntr_reg = GetByte();&amp;nbsp; // read value from the Control register and save it;&lt;BR /&gt;&amp;nbsp;StopBit();&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void WriteRTC(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;ACK_flag = 0;&lt;BR /&gt;&amp;nbsp;StartBit();&lt;BR /&gt;&amp;nbsp;WriteIICbus(SLAVE_ADDRESS);&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;WriteIICbus(0);&amp;nbsp; // Starts write from address "0" in RTC (Seconds);&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;for(i=0;i&amp;lt;7;i++)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;WriteIICbus(RTC_reg[i]);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;return;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;StopBit();&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;byte ReadRTCbyte(byte addr)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;ACK_flag = 0;&lt;BR /&gt;&amp;nbsp;StartBit();&lt;BR /&gt;&amp;nbsp;WriteIICbus(SLAVE_ADDRESS); // RW bit = 0;&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return 0;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;WriteIICbus(addr);&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return 0;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;StartBit();&lt;BR /&gt;&amp;nbsp;WriteIICbus(SLAVE_ADDRESS | 1); // RW bit = 1;&lt;BR /&gt;&amp;nbsp;Read_ACK();&lt;BR /&gt;&amp;nbsp;if(ACK_flag !=0)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;&amp;nbsp;return 0;&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;DIR_SDA = 0;&lt;BR /&gt;&amp;nbsp;RD_data = GetByte();&lt;BR /&gt;&amp;nbsp;StopBit();&lt;BR /&gt;&amp;nbsp;return RD_data;&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;byte GetByte(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;byte tempb, i;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;tempb = 0;&lt;BR /&gt;&amp;nbsp;for(i=0;i&amp;lt;8;i++)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tempb = tempb &amp;lt;&amp;lt; 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SCL = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tempb = tempb | SDA;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SCL = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Wait_sh(SPEED - HOLD);&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;&amp;nbsp;return tempb;&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void WriteIICbus(byte data)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;byte tempb, i;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;tempb = data;&lt;BR /&gt;&amp;nbsp;for(i=0;i&amp;lt;8;i++)&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SDA = ((tempb &amp;amp; 0x80)&amp;gt;&amp;gt;7);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;tempb = tempb &amp;lt;&amp;lt; 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Wait_sh(HOLD);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SCL = 1;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;SCL = 0;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Wait_sh(SPEED - HOLD);&lt;BR /&gt;&amp;nbsp;}&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void Read_ACK(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;DIR_SDA = 0;&lt;BR /&gt;&amp;nbsp;Wait_sh(HOLD);&lt;BR /&gt;&amp;nbsp;SCL = 1;&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;ACK_flag = SDA;&lt;BR /&gt;&amp;nbsp;SCL = 0;&lt;BR /&gt;&amp;nbsp;DIR_SDA = 1;&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void Write_ACK(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;DIR_SDA = 1;&lt;BR /&gt;&amp;nbsp;SDA = 0;&lt;BR /&gt;&amp;nbsp;Wait_sh(HOLD);&lt;BR /&gt;&amp;nbsp;SCL = 1;&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;SCL = 0;&lt;BR /&gt;&amp;nbsp;Wait_sh(HOLD);&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void StartBit(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;SDA = 1;&lt;BR /&gt;&amp;nbsp;SCL = 1;&lt;BR /&gt;&amp;nbsp;DIR_SDA = 1;&lt;BR /&gt;&amp;nbsp;DIR_SCL = 1;&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;SDA = 0;&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;SCL = 0;&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void StopBit(void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;Wait_sh(HOLD);&lt;BR /&gt;&amp;nbsp;SCL = 1;&lt;BR /&gt;&amp;nbsp;Wait_sh(SPEED);&lt;BR /&gt;&amp;nbsp;SDA = 1;&lt;BR /&gt;}&lt;BR /&gt;//***************************************************************************&lt;BR /&gt;void Wait_time(byte time)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;const word k = 250;&lt;BR /&gt;&amp;nbsp;word i, temp_t = (time*k);&lt;BR /&gt;&amp;nbsp;for (i=0;i&amp;lt;temp_t;i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;}&lt;BR /&gt;//********************************************************************&lt;BR /&gt;void Wait_sh(byte time)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;word i, temp_t = time;&lt;BR /&gt;&amp;nbsp;for (i=0;i&amp;lt;temp_t;i++)&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;asm("nop");&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;}&lt;BR /&gt;}&lt;/DIV&gt;&lt;DIV&gt;//********************************************************************&lt;/DIV&gt;&lt;DIV&gt;void main (void)&lt;BR /&gt;{&lt;BR /&gt;&amp;nbsp;DDRB_DDRB6=1 ;&lt;BR /&gt;&amp;nbsp;DDRB_DDRB5=1 ;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;PERP= 0xFF;&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;EnableInterrupts; /* enable interrupts */&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;Write_Control_reg(3);&amp;nbsp; // squarewave output 32.768kHz at RTC SQW pin;&lt;BR /&gt;&amp;nbsp;Init_Time_Default();&lt;BR /&gt;&amp;nbsp;WriteRTC();&lt;BR /&gt;&amp;nbsp;for(;&lt;A href="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif"&gt;&lt;IMG alt=":smileywink:" class="emoticon emoticon-smileywink" src="http://freescale.i.lithium.com/i/smilies/16x16_smiley-wink.gif" title="Smiley Wink" /&gt;&lt;/A&gt;&lt;BR /&gt;&amp;nbsp;{&lt;BR /&gt;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Hours&amp;nbsp;&amp;nbsp; = ReadRTCbyte(2);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Minutes = ReadRTCbyte(1);&lt;BR /&gt;&amp;nbsp;&amp;nbsp;Seconds = ReadRTCbyte(0);&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&lt;BR /&gt;&amp;nbsp;} /* loop forever */&lt;BR /&gt;&amp;nbsp;/* please make sure that you never leave this function */&lt;BR /&gt;}&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2007 19:26:14 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130177#M1295</guid>
      <dc:creator>embeddedsiva</dc:creator>
      <dc:date>2007-04-10T19:26:14Z</dc:date>
    </item>
    <item>
      <title>Re: plz check this code for DS1307 interface</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130178#M1296</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Well, sorry but I'm not a "C" programmer...&lt;BR /&gt;&lt;BR /&gt;However, I thought the DS1307 was fixed at a slave address of 68h...&lt;BR /&gt;&lt;BR /&gt;I also seem to remember it being pretty adamant about 100khz max speed as well, so check your I2C speed.&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2007 20:22:04 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130178#M1296</guid>
      <dc:creator>mke_et</dc:creator>
      <dc:date>2007-04-10T20:22:04Z</dc:date>
    </item>
    <item>
      <title>Re: plz check this code for DS1307 interface</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130179#M1297</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;thanks for ur reply&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;i m not using i2c&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;i wrote it for 2 wire communication using port&amp;nbsp;B&amp;nbsp;pins&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;if u had interfaced with ds1307 plz share the code with me&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;im running out of my time&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2007 21:16:16 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130179#M1297</guid>
      <dc:creator>embeddedsiva</dc:creator>
      <dc:date>2007-04-10T21:16:16Z</dc:date>
    </item>
    <item>
      <title>Re: plz check this code for DS1307 interface</title>
      <link>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130180#M1298</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Well, if you write your own driver direct to two pins, just remember that when you send an 'address' to the I2C bus, you only send 7 bits followed by a 0 or a 1 to indicate writing or reading as the last bit sent. I suppose you could do the same thing by sending D0 and D1 as an 8-bit byte instead of sending 68H as 7-bits followed by the 0 or 1 bit. Then waiting for either an ack or a nak.&lt;BR /&gt;&lt;BR /&gt;It looks like you did that, but then, I don't know 'C'.&lt;P&gt;Message Edited by mke_et on &lt;SPAN class="date_text"&gt;2007-04-10&lt;/SPAN&gt;&lt;SPAN class="time_text"&gt;12:22 PM&lt;/SPAN&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 10 Apr 2007 23:18:37 GMT</pubDate>
      <guid>https://community.nxp.com/t5/S12-MagniV-Microcontrollers/plz-check-this-code-for-DS1307-interface/m-p/130180#M1298</guid>
      <dc:creator>mke_et</dc:creator>
      <dc:date>2007-04-10T23:18:37Z</dc:date>
    </item>
  </channel>
</rss>

