|
From: | Christoph Plattner |
Subject: | Re: [avr-gcc-list] Newbie - should this work? |
Date: | Mon, 20 Jan 2003 00:24:04 +0100 |
User-agent: | Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.0.1) Gecko/20020830 |
Hello, sorry, but I cannot understad this !How should this work. As I saw in the library (ok, it is some months old), the PORTD is define to 0x12 (example of a 8515).
What shall the compler do, if you write PORTD = 0x00; which means 0x12 = 0x00; What code shall there be generated ?? So this is the reason, why I cannot understand, that this code works. Or is the io.h completely written in another way. I cannot see a way per include files to get a PORTD = 0x00; to a outp (0x00, 0x12); !!!! Christoph Volkmar Dierkes wrote:
Christoph, On Sun, 19 Jan 2003 18:36:25 +0100, Christoph Plattner wrote:In principal, I don't think your code is correct ! All the other answers have not dealt with that, why ??? PORTD and DDRD are defines to registers numbers. I think you have to use inp() and outp() or do a memory access with `* (unsigned char *) <addr> = xxx' example (which works): outp(0xff, DDRB); outp(0x00, PORTB);Since AFAIK 3.2 is the recommend access to I/O ports via direct access as Josh has used it. That isn't the problem.Memory access wouldn't work because they are in the io area, not in memory.Volkmar avr-gcc-list at http://avr1.org
-- ------------------------------------------------------- private: address@hidden company: address@hidden avr-gcc-list at http://avr1.org
[Prev in Thread] | Current Thread | [Next in Thread] |