thanks... i'll just forget about it.
Paul Curtis <plc@rowley.co.uk> wrote:Jay,
Sorry, you can't do that in a single instruction, you do indeed need
three as TCCR1A is at an I/O location that is not reachable by SBI and
CBI instructions (only I/O addresses 0-31 are). Not only that, SBI and
CBI take bit numbers not masks and cannot set or clear multiple bits.
Hence, the code the C compiler generates is the most compact you can
get: three instructions to set a single bit.
So to answer your final question: no, you didn't get it right. ;-)
--
Paul Curtis, Rowley Associates Ltd http://www.rowley.co.uk
<http://www.rowley.co.uk/>
CrossWorks for MSP430, ARM, and (soon) Atmel AVR processors
-----Original Message-----
From: jay marante [mailto:jaythesis@yahoo.com]
Sent: 03 June 2004 13:05
To: AVR-chat@yahoogroups.com
Subject: [AVR-Chat] asm in ICCAVR
i have this code with ICCAVR:
TCCR1A |= (1<<COM1A1)|(1<<COM1A0);
i wanted to replace that code with this assembly code:
asm("SBI TCCR1A,COM1A1+COM1A0\n");
because i found out that the assembly code that the compiler
generate has three sets of instructions. i think that if i replace the C
code with the corresponding assembly code, i might optimize the flash
memory.
but i get this error when i compile it:
"absolute expression expected"
what's wring with my code? did i get it right?
thanks for the help.
Yahoo! Groups SponsorADVERTISEMENT
---------------------------------
Yahoo! Groups Links
To visit your group on the web, go to:
http://groups.yahoo.com/group/AVR-Chat/
To unsubscribe from this group, send an email to:
AVR-Chat-unsubscribe@yahoogroups.com
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
---------------------------------
Do you Yahoo!?
Friends. Fun. Try the all-new Yahoo! MessengerMessage
RE: [AVR-Chat] asm in ICCAVR
2004-06-03 by jay marante
Attachments
- No local attachments were found for this message.