Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Beste tweakers,
- Ik heb een probleem met mijn code wat ik op een atmega328P draai.
- Ik heb in C++ een driver geschreven voor de w5100 (ethernet), echter als ik in mijn code een socket aan maak.
- Server sock0(o);
- Dan gebeuren er rare dingen, oa wordt de code die er boven staat niet meer helemaal uitgevoerd.
- De fout zit dus waarschijnlijk in de constructor van mijn server class, ik heb echter niet zoveel ervaring met classes (dit is de eerste keer dat ik het een beetje serieus gebruik), dus zou iemand hier even naar kunnen kijken?
- /// main.cpp******************************************************************
- /// main.cpp******************************************************************
- /// main.cpp******************************************************************
- #include "spi.hpp" // mijn librarys
- #include "ethernet.hpp" // mijn librarys
- void setup(){
- pinMode(7, OUTPUT);
- pinMode(5, OUTPUT);
- melodi(); // piep toontje (tijdelijk)
- delay(1000);
- Serial.begin(115200);
- Serial.println("We just rebooted!!!!\n"); // hierna herstart hij ( de volgende regel wordt dus niet uitgevoerd), mits ik onderin de socket aan maak.
- Serial.println("\t Start init");
- spi.init();
- delay(1);
- }
- void loop()
- {
- Serial.println("\t begin setIpData");
- wiz.setIpData();
- Serial.println("\t sock init");
- Server sock0(0); // ----------------------- als dit in mijn code staat
- Serial.println("end sock");
- while(1);
- }
- // ****************************Header****************************
- // ****************************Header****************************
- // ****************************Header****************************
- class Server{
- public:
- uint8_t buffer[bufferSize];
- //Server(uint8_t number);
- Server(int number);
- void setPort();
- void setPort(uint8_t laag);
- void setPort(uint8_t hoog, uint8_t laag);
- void setPort(uint16_t getal);
- void setPort(int x);
- int start(); // initalizatie
- int listen(); // luisteren voor binnen koment verkeer
- int checkEstablished(); // is er een verbinding tot stand gekomen?
- uint16_t receivedData(); // data ontvangen?
- void receivingData(); // er komt data binnen, nu verwerken
- int sendData(uint8_t data[], uint16_t length); // verstuur data
- void gotFin(); // fin: einde verbinding ontvangen?
- void closed(); // verbinding is verbroken (denk ik)
- int timeout(); // Timeout in de verbinding
- void close(); // sluit de verbinding
- uint8_t getStatus();
- void disconnect(); // sluit de vebinding netjes af
- private:
- struct MODE{
- const static uint8_t MULTI = 1<<7;
- const static uint8_...... // en nog veel meer constanten
- }SR;
- uint8_t port[2];
- uint8_t status;
- uint8_t state;
- uint8_t sNr, number; // socket nummer
- uint8_t retrycounter;
- uint16_t timeoutTimer; // verzin hier nog wat leuks mee
- uint16_t read2byte(uint8_t group, uint8_t high, uint8_t low);
- void write2byte(uint8_t group, uint8_t regHigh, uint8_t regLow, uint16_t data);
- };
- // ****************************cpp include****************************
- // ****************************cpp include****************************
- // ****************************cpp include****************************
- [quote]
- Server::Server(int Number){ /// oorspronkelijk stond hier meer code in, maar dat heb ik er even uit gelaten (krijg het zelfde probleem hier mee)
- sNr=4;
- Number = 0;
- }
- Een paar dingen wat ik al heb geprobeerd:
- [list]
- [*]Alle functies leeg halen
- [*]controlleren of de voeding spanning niet inzakt
- [*]Andere(grote) microcontroller
- [*]Controle of het geheugen niet vol loopt, (volgens de compiler niet)
- [/list]
- Mvg,
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement