Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointikysymykset: C: Merkkien kirjoitus taulukkoon

Sivun loppuun

ransikki [26.02.2007 15:45:41]

#

Hei!

Olisi pieni ongelma.
Minulla on toimiva c-kielen ohjelma, jota pitäisi hieman muuttaa. Ohjelmaan pitäisi lisätä
taulukko, johon tallentaa merkkejä n kappaletta. Nyt ohjelma toimii siten, että merkkejä
ei tallenneta mihinkään vaan se lähetetään ne heti eteenpäin.

Tällä hetkellä koodi näyttää tältä:

char uart_get_puskuri(void)
{
  int i;
  register char b;

  while(!Uart_rx_ready());

    for(i=0; i<10; i++)
    {

      b=Uart_get_byte();

      puskuri[i]=b;

      Uart_ack_rx_byte();
    }

  return ;
}

Koodi täyttää taulukkoa mutta sinne tulee jotain aivan ihme arvoja.
Olisiko jollain tietoa tästä asiasta?

Kiitos etukäteen!

Metabolix [26.02.2007 21:46:21]

#

Kai taulukon määrittely on kunnossa? Kun sitä ei tuossa näy. Lisäksi funktioltasi puuttuu palautusarvo. Olet määritellyt sen palauttamaan char-muuttujan, mutta et palauta mitään.

ransikki [27.02.2007 08:23:31]

#

Taulukon määrittelyn pitäisi olla kunnossa.

char puskuri[10];

Palautusarvona pitäisi ilmoittaa taulukon osoite että voisin käyttää taulukon arvoja mutta en vaan saa sitä toimimaan. Kun nyt ekana onnistuisin saamaan taulukkoon syöttämäni arvot. Taulukko näyttää nyt tältä:

Puskuri

[0]        '€' (0x80)
[1]        'x' (0x78)
[2]        'ø' (0xF8)
[3]        'ø' (0xF8)
[4]        'ø' (0xF8)
[5]        'ø' (0xF8)
[6]        'ø' (0xF8)
[7]        'x' (0x78)
[8]        'x' (0x78)
[9]        'x' (0x78)

Metabolix [27.02.2007 20:06:59]

#

En osaa tosiaan sanoa, kun en tiedä, mistä oikeastaan on kyse. Toimiihan funktio varmasti ilman taulukkoa oikein? Siis saathan b-muuttujaan järkeviä arvoja? Ei kai tuossa näkyvässä koodissa mikään voi vikaan mennä. (Vai kuuluisiko alun while-silmukan ehkä olla forin sisällä, jotta se ajettaisiin jokaiselle tavulle? En tiedä uart-systeemeistä.)

os [01.03.2007 21:52:38]

#

ransikki kirjoitti:

Palautusarvona pitäisi ilmoittaa taulukon osoite

char *uart_get_puskuri(void) {
// ...
return puskuri;
}

vai?

ransikki [05.03.2007 11:01:03]

#

Muuten koodi toimii mutta en saa vieläkään tallennettua niitä "oikeita" merkkejä taulukkoon joita näppäimistöltä painelen. Sinne tulee jotain ihan muita merkkejä kuin mitä näppäimistöltä syötän. En tiedä missä menee vikaan!

RopoMen [07.03.2007 02:23:12]

#

hm..

Oletko tutustunut aiemmin Scan Code:ihin? Jos et niin lukaise nämä:

http://www.beyondlogic.org/keyboard/keybrd.htm
http://www.lookuptables.com/ebcdic_scancodes.php

Ovatko ne mahdolliset "väärät" merkit sittenkin oikeita Scan code merkkejä?
(Tämä vinkki saattaa olla aika kaukaa haettu, mutta anyway...)

ransikki [07.03.2007 10:26:50]

#

No nyt se vihdoin toimii. Koodi oli oikein, vika oli UARTin asetuksissa(baudrate).

Kiitti kaikille


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta