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