at91sam7s, C

Mar 12, 2008 2 Replies

witam



Mam kod zaczerpniêty z przyk³adu dla uC at91sam7s256:



PIOA_PER = 0x0000000F; PIOA_OER = 0x0000000F;



Nie mogê go skompilowaæ. Natomiast bez problemu kompiluje siê kod:



AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, 0x0000000F);



lub nawet



AT91_REG *www = (AT91_REG*)AT91C_BASE_PIOA->PIO_SODR;



*www = 0x0000000F;

U¿ywam eclipsa i gnuarm. Jakie biblioteki muszê ¶ci±gn±æ ¿eby móc odwo³ywaæ siê do rejestrów w ten krótszy, bezpo¶redni sposób? Obecnie mam biblioteki AT91SAM7S256.h, lib_AT91SAM7S256.h.



pozdrawiam tn


i te Ci wystarcza, sprobuj tak AT91C_BASE_PIOA->PIO_CODR, nie boj sie tez funkcji inline (np. AT91F_PIO_CfgOutput(AT91C_BASE_PIOA, AT91C_PIO_PA7), bo szczegolnie one nie kosztuja w szybkosci dzialania...

pozdrawiam Janusz U.

tom snipped-for-privacy@NOSPAM.wp.pl pisze:

Polecam jednak stosowanie tego ostatniego sposobu (z wykorzystaniem makr dostarczanych przez Atmela), jeżeli będziesz kiedyś chciał przejść na inny procesor to często zaoszczędzi wielu późniejszych zmian w projekcie. Samo konfigurowanie portów lub machanie bitami dużo nie zmienia się (z procesora na procesor, zakładając że pozostajemy cały czas w ARMach od Atmela) ale np. wykorzystanie makr związanych z portem szeregowym, SSC, czy odczytywaniem częstotliwości zegara pozwala uprościć sobie życie. Szczególnie, że "ręcznie" w takich przypadkach trzeba byłoby się sporo napisać. A podany na początku postu przykład kodu źródłowego to na pewno nie dla gcc. Może IAR łyknie...

Join the Discussion

Have something to add? Share your thoughts — no account required.

Didn't find your answer?

Ask the community — no account required