AVRGCC a texty

Jan Smrz jan.smrz@htc.honeywell.cz
Pátek Srpen 20 13:38:47 CEST 2004


Jestli nebude problem v tom, ze k datum ve FLASH se musi pristupovat 
trochu jinak, napr. jak uvedl Kosta __lpm_inline(*char), nebo napr. fce 
pgm_read_byte(*char) apod.

J.S.

Milan wrote:
> 1/ Mam otazku:
>     Ako to skonci pri pokuse s:
>        void Outtext(const char  __attribute__((progmem)) *text)
> 2/ Co tak skusit najobecnejsi tvar a nechat to na kompilator ako si poradi:
> 
>        void Outtext(char *text)
> 
> Milan
> 
> ----- Original Message ----- 
> From: "Kovar Milan" <mkovar@seznam.cz>
> To: "[HWnews]" <hw-list@mailman.nethouse.cz>
> Sent: Friday, August 20, 2004 12:52 PM
> Subject: Re: AVRGCC a texty
> 
> 
> 
>>>Problem je v tom, ze neposlete ani kousek Vasi rutinky :-)))
>>
>>Cely testovaci programek posilam.
>>At pouzije jeden, nebo druhy tvar deklarace, vzdy se vypisuje jen text,
>>ktery je primo v parametru, ovsem ten se kopiruje do RAM. Text z
>>konstanty se nevypisuje.
>>Pouzivam AvrEdit V3.5
>>
>>
>>#include <stdlib.h>
>>#include <stdio.h>
>>#include <string.h>
>>#include <io.h>
>>#include <interrupt.h>
>>#include <sig-avr.h>
>>#include <pgmspace.h>
>>
>>const unsigned char __attribute__((progmem)) text1[]="Ahoj";
>>
>>
>>void UART_transmit(unsigned char data)
>>     {
>>     while (!(UCSRA&(1<<UDRE)));
>>     UDR=data;
>>     }
>>
>>void Outtext(const char * __attribute__((progmem)) text)
>>/*void Outtext(const char *text)*/    {
>>     while(*text)
>>         {
>>         UART_transmit(*text++);
>>         }
>>     }
>>
>>int main(void)
>>     {
>>     UBRRH=0x00;
>>     UBRRL=0x33;
>>     UCSRB=(1<<RXCIE)|(1<<RXEN)|(1<<TXEN);
>>     UCSRC=(1<<URSEL)|(1<<UCSZ1)|(1<<UCSZ0);
>>     do
>>       {
>>         Outtext(text1);
>>         Outtext("text1");
>>       }
>>     while (1);
>>     }
>>
>>



Další informace o konferenci Hw-list