Hi-Tech picc lite: Object file

Olen tässä hieman yrittänyt aloitella PIC ohjelmointia C-kielellä, Hi-Tech picc litellä. Minulla on ongelma header filun kanssa, eli kun laitan koodiin:

#include
...
DelayS(2);

kääntäjä antaa ilmoituksen:

Error[499] : undefined symbol:
   _DelayS (C:\PIC\Projektit\c_testi\main_code.obj)
BUILD FAILED: Wed May 02 18:01:02 2007

Sain jossain vaiheessa aikani testaillessa koodin kääntymään ja se toimi. Huomasin että kääntäjä haluaa object tiedoston (esim. delay.obj) jolloin projekti kääntyy. Mutta miten tämä object file tehdään ja mitä se sisältää?
113817
Äänestä

Muut lukivat myös

Vastaukset 11

Vanhimmat
  • Jaa, mutta piccliten samples kansiosta löytyykin delay.h ja c. Kopioi ne projekstikansioosi ja pitäisi toimia #include "delay.h":lla. Huomaa, että vot käyttää funktioita DelayUs() ja DelayMs() kun olet asettanut XTAL_FREQ -vakion arvon ensin.

    Äänestä

  • Kyllä siinä on. Ja olen kyllä imuroinut KO viive tiedoston. Ja sama delay.h on PICC liten mukana. Mutta vaikka se delay.h on projektin kansiossa ja laitettu projektiin, ei se toimi...

    Ja sehän tässä hassua on, että olen sen saanut toimimaan, en vain tiedä miten!

    Äänestä

  • bolio kirjoitti:

    Kyllä siinä on. Ja olen kyllä imuroinut KO viive tiedoston. Ja sama delay.h on PICC liten mukana. Mutta vaikka se delay.h on projektin kansiossa ja laitettu projektiin, ei se toimi...

    Ja sehän tässä hassua on, että olen sen saanut toimimaan, en vain tiedä miten!

    No jos tämä on käänettävää koodiasi, niin siinä on kaksi virhettä:

    #include
    ...
    DelayS(2);

    Pitää olla

    #include "delay.h"
    ...
    DelayMs(2);

    Äänestä

  • sitten nämä kirjoitti:

    No jos tämä on käänettävää koodiasi, niin siinä on kaksi virhettä:

    #include
    ...
    DelayS(2);

    Pitää olla

    #include "delay.h"
    ...
    DelayMs(2);

    On kokeiltu. Ei toimi. Oisko joku asetus väärin? Kun kääntäjä ei tee sitä objekti-filua?

    Äänestä

  • bolio kirjoitti:

    On kokeiltu. Ei toimi. Oisko joku asetus väärin? Kun kääntäjä ei tee sitä objekti-filua?

    Pistä tähän
    1.) sorsa
    2.) kääntämiskomento
    3.) kääntäjän tuloste

    Äänestä

  • arvailla kirjoitti:

    Pistä tähän
    1.) sorsa
    2.) kääntämiskomento
    3.) kääntäjän tuloste

    SORSA:

    #include
    //#include

    #include // Viiveet oli: DelayUs(40) DelayMs(40) DelayS(40)


    #define _FCMEN_ON 0x3FFF
    #define _FCMEN_OFF 0x37FF
    #define _IESO_ON 0x3FFF
    #define _IESO_OFF 0x3BFF
    #define _BOD_ON 0x3FFF
    #define _BOD_NSLEEP 0x3EFF
    #define _BOD_SBODEN 0x3DFF
    #define _BOD_OFF 0x3CFF
    #define _CPD_ON 0x3F7F
    #define _CPD_OFF 0x3FFF
    #define _CP_ON 0x3FBF
    #define _CP_OFF 0x3FFF
    #define _MCLRE_ON 0x3FFF
    #define _MCLRE_OFF 0x3FDF
    #define _PWRTE_OFF 0x3FFF
    #define _PWRTE_ON 0x3FEF
    #define _WDT_ON 0x3FFF
    #define _WDT_OFF 0x3FF7
    #define _LP_OSC 0x3FF8
    #define _XT_OSC 0x3FF9
    #define _HS_OSC 0x3FFA
    #define _EC_OSC 0x3FFB
    #define _INTRC_OSC_NOCLKOUT 0x3FFC
    #define _INTRC_OSC_CLKOUT 0x3FFD
    #define _EXTRC_OSC_NOCLKOUT 0x3FFE
    #define _EXTRC_OSC_CLKOUT 0x3FFF
    #define _INTOSCIO 0x3FFC
    #define _INTOSC 0x3FFD
    #define _EXTRCIO 0x3FFE
    #define _EXTRC 0x3FFF


    main()
    {

    __CONFIG(_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOD_OFF & _IESO_OFF & _FCMEN_OFF);


    while(1){

    TRISC0 = 0;
    TRISC5 = 1;

    if (RC5 == 1){

    unsigned int c;

    for (c=0;c

    Äänestä

  • bolio kirjoitti:

    SORSA:

    #include
    //#include

    #include // Viiveet oli: DelayUs(40) DelayMs(40) DelayS(40)


    #define _FCMEN_ON 0x3FFF
    #define _FCMEN_OFF 0x37FF
    #define _IESO_ON 0x3FFF
    #define _IESO_OFF 0x3BFF
    #define _BOD_ON 0x3FFF
    #define _BOD_NSLEEP 0x3EFF
    #define _BOD_SBODEN 0x3DFF
    #define _BOD_OFF 0x3CFF
    #define _CPD_ON 0x3F7F
    #define _CPD_OFF 0x3FFF
    #define _CP_ON 0x3FBF
    #define _CP_OFF 0x3FFF
    #define _MCLRE_ON 0x3FFF
    #define _MCLRE_OFF 0x3FDF
    #define _PWRTE_OFF 0x3FFF
    #define _PWRTE_ON 0x3FEF
    #define _WDT_ON 0x3FFF
    #define _WDT_OFF 0x3FF7
    #define _LP_OSC 0x3FF8
    #define _XT_OSC 0x3FF9
    #define _HS_OSC 0x3FFA
    #define _EC_OSC 0x3FFB
    #define _INTRC_OSC_NOCLKOUT 0x3FFC
    #define _INTRC_OSC_CLKOUT 0x3FFD
    #define _EXTRC_OSC_NOCLKOUT 0x3FFE
    #define _EXTRC_OSC_CLKOUT 0x3FFF
    #define _INTOSCIO 0x3FFC
    #define _INTOSC 0x3FFD
    #define _EXTRCIO 0x3FFE
    #define _EXTRC 0x3FFF


    main()
    {

    __CONFIG(_INTRC_OSC_NOCLKOUT & _WDT_OFF & _PWRTE_OFF & _MCLRE_OFF & _CP_OFF & _BOD_OFF & _IESO_OFF & _FCMEN_OFF);


    while(1){

    TRISC0 = 0;
    TRISC5 = 1;

    if (RC5 == 1){

    unsigned int c;

    for (c=0;c

    Jos delay.c ja .h on samassa kansiossa kuin kutsuva moduli on #include -lause oltava #include "delay.h".

    Itselläkin on picclite 9.50, eikä siellä ainakaan ole DelayS() -funktiota ollenkaan. Kokeile kääntyykö koodi jos vaihdat delay.h:n hipsuihin ja kutsut vaikka DelayMs(250);

    Kokeile myös kääntää samples kansion projekteja.

    Äänestä

  • ne hipsut kirjoitti:

    Jos delay.c ja .h on samassa kansiossa kuin kutsuva moduli on #include -lause oltava #include "delay.h".

    Itselläkin on picclite 9.50, eikä siellä ainakaan ole DelayS() -funktiota ollenkaan. Kokeile kääntyykö koodi jos vaihdat delay.h:n hipsuihin ja kutsut vaikka DelayMs(250);

    Kokeile myös kääntää samples kansion projekteja.

    No nyt toimii, kun laitoin projektikansioon delay.h delay.c ja always.h tiedostot. Eli minulla oli aikaisemmin vain delay.h tiedosto...

    Toimii #include ja #include "delay.h" komennoilla.


    KIITOS PALJON AVUSTA.
    Joskus tappaa motivaatiota aika rankasti kun jumittuu tämmösiin ongelmiin.

    Äänestä

Joku henkisesti häiriintynyt pommittaa tätä ketjua automaattivastauksilla. Nämä tulevet ilmeisesti jonkun rikollisproxyn kautta koska ylläpito ei ole halukas lähettäjää bannaamaan.
Ehkä kannattaisi tutkia osallistujat tuosta alkupäästä ja laittaa vireille syyte tietoliikenteen häirinnästä.

Äänestä
  • Tarkistussumma ei näy purevan tähän roskaajaan ja se on varsin ymmärrettävää kun yrityskertoja ei ole mitenkään rajattu. Päinvastoin se kannustaa vaan yrittämään aina uudelleen toisella arvolla kun oikea löytyy suht' helposti. Välillä tietysti kuormaa on sen verran että koko serveri on vähän aikaa tiltissä.

    Olisiko parempi esim. monikirjaiminen stringi niin mahdollisuuksien määrä nousisi niin korkeaksi että huijarin ehtii saada kiinni kun se kelaa vaihtoehtoja läpi?

    Äänestä

Kommentointi on suljettu.

Ketjusta on poistettu 1580 sääntöjenvastaista viestiä.

Kommentoi aloitusta


bolio kirjoitti:

Olen tässä hieman yrittänyt aloitella PIC ohjelmointia C-kielellä, Hi-Tech picc litellä. Minulla on ongelma header filun kanssa, eli kun laitan koodiin:

#include
...
DelayS(2);

kääntäjä antaa ilmoituksen:

Error[499] : undefined symbol:
   _DelayS (C:\PIC\Projektit\c_testi\main_code.obj)
BUILD FAILED: Wed May 02 18:01:02 2007

Sain jossain vaiheessa aikani testaillessa koodin kääntymään ja se toimi. Huomasin että kääntäjä haluaa object tiedoston (esim. delay.obj) jolloin projekti kääntyy. Mutta miten tämä object file tehdään ja mitä se sisältää?

Keskustelu on suljettu, eikä siihen voi enää kirjoittaa.

Ilmoita asiaton sisältö

  • Sisältää materiaalia, joka on loukkaavaa, herjaavaa, rasistista, uhkailevaa tai ahdistelevaa.

  • Materiaali sisältää nimiä, yhteystietoja tai muita henkilökohtaisia tietoja. Julkisuuden henkilöistä, julkisissa viroissa toimivista ihmisistä sekä yritysten vastuuhenkilöistä saa keskustella työhön liittyen. Myös yksityiselämään liittyvistä asioista voi keskustella siltä osin, kuin niistä on julkisesti kerrottu.

  • Sisältää lapsille haitallista tai heiltä kiellettyä materiaalia. Seksuaalinen sisältö on sallittua aiheeseen tarkoitetuilla palstoilla, joiden ikäraja on 18 vuotta.

  • Lainvastaista sisältöä voi olla mm. yksityiselämää loukkaavan tiedon levitys, kiihottaminen kansanryhmää vastaan, laiton uhkaaminen, alaikäisiin liittyvä seksuaalinen sisältö/grooming, petokset, identiteettivarkaudet, kunnianloukkaukset ja tekijänoikeusrikkomukset.

  • Sisältö ei liity palstan tai keskusteluketjun aiheeseen.

  • Viesti ei ole suomea tai ruotsia (pl. International Forums), se sisältää mainontaa, se sisältää tekijänoikeuksin suojattua materiaalia, se on massapostitus tai jokin muu syy.

Jaa keskustelu