Multidesk.be » Forums » C en C++ » Kan geen toegang krijgen tot de port.dll of de static lib port.lib ???? (gesloten)

Helpinformatie
Dit onderwerp bevindt zich in het archief.
Het is bijgevolg niet mogelijk er nog op te reageren.
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door een gast op zaterdag 21 april 2007 om 15:33:32.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Hallo iedereen,

Ik heb hier enkele C programma's geschreven, namelijk een hoofdprogramma om I2C te kunnen gebruiken en dan een los staand C unit waarin het protocol is geschreven gebruikmakend van de externe functies van de port.dll, heb het ook geprobeerd met de static library wel het compileren werkt ook niet.

Hoe vind de externe functies niet van de port.dll of port.lib.
Ik heb de declaraties van deze bibliotheek wel

Hoe kan ik nu in mijn code toch mijn externe functies in mijn programma gebruiken zonder al de foutmeldingen?

CODE
  1.  
  2.  
  3. #include <stdio.h>
  4. #include <port.h>
  5.  
  6. int main(int argc, char *argv[])
  7. {
  8.   RTS(0);                             // SCL = LAAG
  9.   DTR(0);                             // SDA = LAAG
  10.   RTS(1);                             // SCL = HOOG
  11.   Delayus(10);                        // Delay 10Ás
  12.   RTS(0);                             // SCL = LAAG
  13.  
  14.   return 0;
  15. }
  16.  
  17. void i2c_init()
  18. {
  19.   // OpenCom(PChar('com2:9600,N,8,1'))
  20.   RTS(1);                             // SCL = HOOG
  21.   DTR(1);                             // SDA = HOOG
  22. }
  23.  
  24. void i2c_Start()
  25. {
  26.   DTR(0);                            // SDA = LAAG
  27.   RTS(0);                            // SCL = LAAG
  28. }
  29.  
  30. void i2c_Stop()
  31. {
  32.   RTS(0);                            // SCL = LAAG
  33.   DTR(0);                            // SDA = LAAG
  34.   RTS(1);                            // SCL = HOOG
  35.   DTR(1);                            // SDA = HOOG
  36. }
  37.  
  38. void i2c_Ack()
  39. {
  40.   RTS(0);                            // SCL = LAAG
  41.   DTR(1);                            // SDA = HOOG
  42.   Delayus(10);                       // Vertragingslus
  43.   RTS(0);                            // SCL = HOOG
  44. }
  45.  
  46. int i2c_Write(char Word)
  47. {
  48.   char BitWord, teller;
  49.  
  50.   return(true);
  51.  
  52.   BitWord = 0x80;
  53.   for(teller = 0; teller < 8; teller++)
  54.   {
  55.     if(Word && BitWord) == BitWord {
  56.        DTR(1)
  57.     }
  58.     else {
  59.       DTR(0);                          // SDA setten
  60.       RTS(1);                          // SCL = HOOG
  61.       Delayus(10);                     // Delay van 10 Ás
  62.       RTS(0);                          // SCL = HOOG
  63.       Bitword <<= 2;
  64.     }
  65.  
  66.     DTR(1);                            // SDA = HOOG
  67.     RTS(1);                            // SCL = HOOG, SDA = Read
  68.     Deleyus(10);                       // Delay van 10 Ás
  69.     if(CTS() == 1))
  70.       return(false);
  71.  
  72.     RTS(0);                            // SCL = HOOG
  73. }
  74.  
  75. int i2c_Read()
  76. {
  77.   int bitwoord, woord, teller;
  78.  
  79.   RTS(0);                              // SDA = HOOG
  80.   DTR(1);                              // SCL = LAAG
  81.   bitwoord = 0x80;
  82.   woord = 0x00;
  83.  
  84.   for(teller = 0; teller < 8; teller++) {
  85.     RTS(1);                            // SCL = HOOG, SDA = Read
  86.     Delayus(10);                       // Delay van 10 Ás
  87.  
  88.     if(CTS() == 1))
  89.       woord += bitwoord;
  90.     RTS(0);                            // SCL = LAAG
  91.     bitwoord <<= 2;
  92.     RTS(0);
  93.   }
  94.   return(woord);                    // SCL = HOOG
  95. }
  96.  
  97.  


CODE
  1.  
  2.  
  3. =================
  4. control_TDA7300.c
  5. =================
  6.  
  7. #define ADDR_TDA7300 0x88
  8. #define STEREO_1     0x59
  9. #define STEREO_2     0x5A
  10. #define STEREO_3     0x5B
  11. #define STEREO_4     0x5C
  12. #define MONO         0x5D
  13.  
  14. #include <port.h>
  15. #include <i2c.c>
  16. int main(int argc, char *argv[])
  17. {
  18.   // Tabel voor instellen van het volume van de TDA7300
  19.   unsigned char volume_tabel = {0x08, 0x09, 0x0A, 0x0B, 0x0C,
  20.                                 0x10, 0x11, 0x12, 0x13, 0x14,
  21.                                 0x18, 0x19, 0x1A, 0x1B, 0x1C,
  22.                                 0x20, 0x21, 0x22, 0x23, 0x24,
  23.                                 0x28};
  24.  
  25.   unsigned char treble_tabel = {0x7F, 0x7E, 0x7D, 0x7C, 0x7B,
  26.                                 0x77, 0x76, 0x75, 0x74, 0x73};
  27.                                
  28.   unsigned char bass_table   = {0x6F, 0x6E, 0x6D, 0x6C, 0x6B,
  29.                                 0x67, 0x66, 0x65, 0x64, 0x63);
  30.  
  31.  
  32.                                  
  33.    
  34.  
  35.   // Initialisatie van de Com Port
  36.  
  37.   RTS(0);                             // SCL = LAAG
  38.   DTR(0);                             // SDA = LAAG
  39.   RTS(1);                             // SCL = HOOG
  40.   Delayus(10);                        // Delay 10Ás
  41.   RTS(0);                             // SCL = LAAG
  42.  
  43.   // Init Port Settings of the RS232
  44.   i2c_init("COM3:9600,N,8,1");
  45.  
  46.   // Adres van de TDA schrijven
  47.   i2c_Start();
  48.  
  49.   address = i2c_Write(ADDR_TDA7300);
  50.   printf("Write TDA7300 Address: %d\n", address);
  51.   i2c_Ack();
  52.  
  53.   // Data schrijven voor het volume van 0 dB tot -40 dB
  54.   // Data staat opgeslagen in de tabel Volume
  55.   for(int i = 0; i < volume_tabel; i++) {
  56.           printf("Data Volume schrijven naar TDA7300 %d\n",i2c_Write(volume_tabel[i]);
  57.           // Delay inbouwen
  58.  };
  59.  i2c_Ack();
  60.  
  61.   // Data schrijven voor het treble
  62.   // Data staat opgeslagen in de tabel Volume
  63.   for(int i = 0; i < treble_tabel ; i++) {
  64.           printf("Data Volume schrijven naar TDA7300 %d\n",i2c_Write(volume_tabel[i]);
  65.           // Delay inbouwen
  66.  };
  67.  i2c_Ack();
  68.  
  69.   // Data schrijven voor het bass
  70.   // Data staat opgeslagen in de tabel Volume
  71.   for(int i = 0; i < bass_table ; i++) {
  72.           printf("Data Volume schrijven naar TDA7300 %d\n",i2c_Write(volume_tabel[i]);
  73.           // Delay inbouwen
  74.  };
  75.  i2c_Ack();
  76.  
  77.   // Stoppen van de overdracht van de data
  78.  i2c_Stop();
  79.  return 0;
  80. }
  81.  
  82.  


CODE
  1.  
  2.  
  3. #include "port.h"
  4.  
  5. void i2c_init(char[] *p);
  6. void i2c_Start()
  7. void i2c_Stop()
  8. void i2c_Ack()
  9. int i2c_Write(char Word)
  10. int i2c_Read()
  11.  
  12.  


CODE
  1.  
  2.  
  3. file : port.h
  4.  
  5. void DELAYUS(unsigned int delay_time);
  6. int OPENCOM(char[] *p);
  7. void DTR(unsigned short data_word);
  8. void RTS(unsigned short data_word);
  9. void TXD(unsigned short data_word);
  10. int CTS ( );
  11. int DSR ( );
  12. int RI ( );
  13. int DCD ( );
  14. void CLOSECOM( );
  15.  
  16.  
^ Reactie #1 geschreven door NightCreature op maandag 23 april 2007 om 17:32:18.
NightCreature's avatar
Multiviteit: 1196
MSc.
  • Bewerken
  • Citeren
  • Reageren
  • Verwijderen
  • Waarschuw een crewlid
Ik weet dit alleen voor C++, maar normaal als je statisch linked en the header include dan vindt hij de functies wel. Als je de dll dynamisch wil laden zal je een functiepointer moeten gebruiken en deze via system calls uit de Winapi opvragen. Heb nu ff geen voorbeeld bij de hand over een uur wel want dan ben ik thuis.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
  • Pagina
  • 1 van 1
  • RSS
  • Eerste ongelezen reactie
  • Plaats een reactie
  • Abonneer mij
  • Onderwerp sluiten