<?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>topic Re: How to manipulate one bit in a register? in 8-bit Microcontrollers</title>
    <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186288#M13966</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Yes,&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="Courier New"&gt;XOR Function&lt;BR /&gt;&amp;nbsp;&amp;nbsp; | 0 | 1 |&lt;BR /&gt;------------&lt;BR /&gt;0 |&amp;nbsp; 0 | 1 |&lt;BR /&gt;------------&lt;BR /&gt;1 |&amp;nbsp; 1 | 0 |&lt;BR /&gt;------------&lt;BR /&gt;&lt;BR /&gt;Where ever there is a 1 it will invert.&lt;BR /&gt;data&amp;nbsp; = 0x5;&amp;nbsp; // 0101&lt;BR /&gt;data ^= 0xf;&amp;nbsp; // 1010 4 bits Inverted.&lt;BR /&gt;&lt;BR /&gt;If you plan on being&amp;nbsp; a coder, you should read and understand this:&lt;BR /&gt;&lt;A href="http://en.wikipedia.org/wiki/Boolean_logic" rel="nofollow" target="_blank"&gt;Boolean Logic&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Wed, 06 Feb 2008 01:34:42 GMT</pubDate>
    <dc:creator>JimDon</dc:creator>
    <dc:date>2008-02-06T01:34:42Z</dc:date>
    <item>
      <title>How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186284#M13962</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;SPAN&gt;Hi,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I have a little trouble.&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;I need to change one bit&amp;nbsp; in&amp;nbsp; one register on my program,&amp;nbsp; if that bit is zero chage to one a vice-versa.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;#include &amp;lt;hidef.h&amp;gt;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;#include "derivative.h"&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;int dato;&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;DDRA=0x00;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;PTA=dato;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;how I can ask about seven bit y my variable "dato" and change only that bit?&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;I have tried to use this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;asm bclr 7, dato&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //if I use this, I have a mistake when a compile&amp;nbsp;&amp;nbsp; ( "invalid opcode or ":" expected)&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;also I try with this:&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;DDRA=0x00;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //first port as input&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;dato =PTA;&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;change();&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;void change (void){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;DDRA=0xFF;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; //then por as output&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;PTA=dato;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (PTA_PTA7==1){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTA_PTA7=0;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dato=PTA;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; else{&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; if (PTA_PTA7==0){&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; PTA_PTA7=1;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dato=PTA;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&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; else{}&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&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;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; dato=PTA;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;}&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;When I simulate this program&amp;nbsp; it works,&amp;nbsp; but I think there isn't to useful and so complicated &amp;nbsp; ¿I can manipule only one bit in the variable "dato"?&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;thanks for your answers.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN&gt;Regars,&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN&gt;Fredy&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;DIV&gt; &lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2008 21:41:23 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186284#M13962</guid>
      <dc:creator>fredycolombia</dc:creator>
      <dc:date>2008-02-05T21:41:23Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186285#M13963</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;PTA_PTA7 ^= 1; &amp;nbsp; // XOR with a 1 toggles a bit&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2008 22:09:47 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186285#M13963</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-02-05T22:09:47Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186286#M13964</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;Hi,&lt;/DIV&gt;&lt;DIV&gt;To set a bit use&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;PTA_PTA7 = 1;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;To clear it, use&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;DIV&gt;PTA_PTA7 = 0;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards,&lt;/DIV&gt;&lt;DIV&gt;Ake&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 05 Feb 2008 22:33:43 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186286#M13964</guid>
      <dc:creator>Ake</dc:creator>
      <dc:date>2008-02-05T22:33:43Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186287#M13965</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;hi,&lt;/DIV&gt;&lt;DIV&gt;that's ok, but&amp;nbsp; can I manipulate bit by bit over my variable "dato" ?&lt;/DIV&gt;&lt;DIV&gt;I don´t need manipulate&amp;nbsp; bits on &amp;nbsp;porta, I need manipulate bits&amp;nbsp;&amp;nbsp;on&amp;nbsp; "dato"&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Is this posible?&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Regards&lt;/DIV&gt;&lt;DIV&gt;Fredy&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2008 01:25:06 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186287#M13965</guid>
      <dc:creator>fredycolombia</dc:creator>
      <dc:date>2008-02-06T01:25:06Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186288#M13966</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;Yes,&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="Courier New"&gt;XOR Function&lt;BR /&gt;&amp;nbsp;&amp;nbsp; | 0 | 1 |&lt;BR /&gt;------------&lt;BR /&gt;0 |&amp;nbsp; 0 | 1 |&lt;BR /&gt;------------&lt;BR /&gt;1 |&amp;nbsp; 1 | 0 |&lt;BR /&gt;------------&lt;BR /&gt;&lt;BR /&gt;Where ever there is a 1 it will invert.&lt;BR /&gt;data&amp;nbsp; = 0x5;&amp;nbsp; // 0101&lt;BR /&gt;data ^= 0xf;&amp;nbsp; // 1010 4 bits Inverted.&lt;BR /&gt;&lt;BR /&gt;If you plan on being&amp;nbsp; a coder, you should read and understand this:&lt;BR /&gt;&lt;A href="http://en.wikipedia.org/wiki/Boolean_logic" rel="nofollow" target="_blank"&gt;Boolean Logic&lt;/A&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2008 01:34:42 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186288#M13966</guid>
      <dc:creator>JimDon</dc:creator>
      <dc:date>2008-02-06T01:34:42Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186289#M13967</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Fredy,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Your&amp;nbsp;line of code -&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; asm bclr 7, dato&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The error occurred because&amp;nbsp;the BCLR instruction will only work for variables that reside in page 0.&amp;nbsp;&amp;nbsp;In all probability the variable dato will reside in DEFAULT_RAM, which is generally not page 0.&amp;nbsp; The variable would need to be specifically assigned to MY_ZEROPAGE section.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;For the variable to remain at the present location, it is possible to use a mask value instead of the bit number.-&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;To clear bit-7,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; dato &amp;amp;= 0x7F;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;To set bit-7,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; dato |= 0x80;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;To toggle bit-7,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;&amp;nbsp; dato ^= 0x80;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Alternatively, you could create a bit field for the variable, but this is more complex.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Regards,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2008 01:49:44 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186289#M13967</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-02-06T01:49:44Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186290#M13968</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;hi again,&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;That's&amp;nbsp;a &amp;nbsp;great solution and very easy,&amp;nbsp; about your alternative, I have tried that,&amp;nbsp;but&amp;nbsp; It really&amp;nbsp;be complex.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;Thanks for your help.&lt;/DIV&gt;&lt;DIV&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;P.D. Can you help&amp;nbsp;me &amp;nbsp;about&amp;nbsp; how I can use the correct location (zero_page), when&amp;nbsp; I use instructions like&amp;nbsp; "asm bclr 7,dato"&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2008 04:32:48 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186290#M13968</guid>
      <dc:creator>fredycolombia</dc:creator>
      <dc:date>2008-02-06T04:32:48Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186291#M13969</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Hello Fredy,&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;The following assumes that MY_ZEROPAGE is appropriately defined within the Project.prm file -&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;#pragma DATA_SEG __SHORT_SEG MY_ZEROPAGE&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;byte dato;&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;#pragma DATA_SEG DEFAULT&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;Further to my previous post, you might consider use of the following macros that allow any bit&amp;nbsp;to be manipulated.&amp;nbsp; They should not be dependent on the variable location.&lt;/FONT&gt;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/DIV&gt;&lt;DIV&gt;&lt;FONT face="Courier New" size="2"&gt;#define set_bit(bitnum,reg)&amp;nbsp; ((reg) |= 1&amp;lt;&amp;lt;(bitnum))&lt;BR /&gt;#define clr_bit(bitnum,reg)&amp;nbsp; ((reg) &amp;amp;= ~(1&amp;lt;&amp;lt;(bitnum)))&lt;BR /&gt;#define togl_bit(bitnum,reg) ((reg) ^= 1&amp;lt;&amp;lt;(bitnum))&lt;BR /&gt;&lt;BR /&gt;&lt;/FONT&gt;&lt;FONT size="2"&gt;To set bit-7 of dato, you would use the following line -&lt;BR /&gt;&lt;BR /&gt;&lt;FONT face="Courier New"&gt;set_bit(7,dato);&lt;BR /&gt;&lt;/FONT&gt;&lt;BR /&gt;Regards,&lt;BR /&gt;Mac&lt;/FONT&gt;&lt;/DIV&gt;&lt;P&gt;&lt;FONT size="2"&gt;&lt;/FONT&gt;&amp;nbsp;&lt;/P&gt;&lt;BR /&gt;&lt;BR /&gt;Message Edited by bigmac on &lt;SPAN class="date_text"&gt;2008-02-06&lt;/SPAN&gt; &lt;SPAN class="time_text"&gt;01:26 PM&lt;/SPAN&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Wed, 06 Feb 2008 10:19:20 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186291#M13969</guid>
      <dc:creator>bigmac</dc:creator>
      <dc:date>2008-02-06T10:19:20Z</dc:date>
    </item>
    <item>
      <title>Re: How to manipulate one bit in a register?</title>
      <link>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186292#M13970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;thanks bigmag,&lt;BR /&gt;&lt;BR /&gt;Is interesting to know how I can do that things, your really help me a lot.&lt;BR /&gt;again... thanks.&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;regards,&lt;BR /&gt;&lt;BR /&gt;Fredy&lt;BR /&gt;&lt;DIV&gt;&lt;/DIV&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 07 Feb 2008 10:24:10 GMT</pubDate>
      <guid>https://community.nxp.com/t5/8-bit-Microcontrollers/How-to-manipulate-one-bit-in-a-register/m-p/186292#M13970</guid>
      <dc:creator>fredycolombia</dc:creator>
      <dc:date>2008-02-07T10:24:10Z</dc:date>
    </item>
  </channel>
</rss>

