Zdravím, mám takový teoretický programovací problém. Napsal jsem si v C progam pro obsluhu maticové klavesnice 4x4 s LCD displeyem. Udělal jsem funkci, která načte(v přerušní) jeden znak z klávesnice a pošle ho na LCD(flueryho knihovna).
A teď: potřebuji z klávesnice načíst už přímo sekvenci čísel, např. 11000 Hz. Přičemž bych si to představoval tak, že na klávesnici zadám 11000#. Akorát vůbec nevím jak na to . Předpokládám, že bych měl ty čísla nějak jednotlivě uložit někam do flash nebo eeprom, a pak znovu přečíst už jako integer(ale nevím jaké funkce na to jsou)? Nebo nějak přez Arrays, nebo jak byste to řešili? Procesor je atmega162.
Děkuji.
Ještě jedna věc, dal jsem tam: uint16_t nacteno_int = (atoi(nacteno)); ale problém je, že při 64k to přetýká. Funkci uint32_t nacteno_long = (atol(nacteno)) mi to nebere(převede se to jako 0) . Nebyl by nějaký nápad? Díky.
Funkce ato…() umějí pouze desítkovou soustavu (‘F’ nelze) a nemáš to pole ukončený nulou (’\0’). Na soustavu s jiným základem než 10 potřebuješ strto…().
Ukončeno nulou a stejně… Vyzkoušeno v simulatoru avr studia Ten tvuj zapis cos mi psal předtím, to taky nepřevede… V příloze je screen z watche. To by mě zajímalo, proč to u tebe funguje a u mě ne?
int main(){
static long int prom0;
static int prom1;
static long int prom2;
static int prom3;
static long int prom4;
static int prom5;
static long int prom6;
static int prom7;