ATmega328 a PROGMEM

Jindrich Fucik fulda na seznam.cz
Středa Březen 24 20:09:43 CET 2021


Co si mám představit pod pojmem "není moc spolehlivé"?
Já mám takovou zkušenost, že mi pokaždé funguje stejně. Pokaždé je 
potřeba si dávat pozor, na co překladač v danou chvíli myslí. Tedy pokud 
čeká práci s RAM, je potřeba používat variantu příkazu, která navede 
překladač do progmem. například memcpy vs. memcpy_P

Dne 24.3.2021 v 20:02 Šerých Jakub napsal(a):
> PROGMEM není moc spolehlivé a většinou se musí obsah před použitím zkopírovat do RAMky pomocí něčeho jako:
> memcpy_P(BuffRam, &ConstProgmem, NumberOfBytes);
> 
> Jakub Šerých
> 
> -----Original Message-----
> From: Hw-list <hw-list-bounces na list.hw.cz> On Behalf Of Petr Zapadlo
> Sent: Wednesday, March 24, 2021 7:42 PM
> To: HW-news <hw-list na list.hw.cz>
> Subject: ATmega328 a PROGMEM
> 
> Zdravím,
> 
> hraji si tady generátorem sinu v atmega328 a narazil jsem na to, že  že mi nefunguje direktiva PROGMEM.
> 
> Definuji si pole s předpočítanými hodnotami sinu:
> 
> const  PROGMEM uint8_t sin_table[]  ={0,8,16,24,32..... };
> 
> a následně ho v přerušení používám:
> 
>     OCR1A=sin_table[count];
> 
> Pokud je definice pole s direktivou progmem, tak je něco špatně - průběh má několik zubů - rozhodně se to ani neblíží sinu - připadá mi, jako by to četl odněkud nesmyslně. Jestliže progmem odstraním, tak to funguje přesně jak má a vykresluje sinus, tj kod bude OK. Podle příkladů co jsem na netu nalezl se to používá právě takto. V info při kompilaci vidím, jak se alokace přesouvá mezi flash a ram podle toho jestli progmem je nebo není, ale to čtení z flash nějak nefunguje.
> 
> Co činím špatně?
> 
> Petr
> 
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz Hw-list na list.hw.cz http://list.hw.cz/mailman/listinfo/hw-list
> _______________________________________________
> HW-list mailing list  -  sponsored by www.HW.cz
> Hw-list na list.hw.cz
> http://list.hw.cz/mailman/listinfo/hw-list
> 


Další informace o konferenci Hw-list