Fórum témák

» Több friss téma
Fórum » Arduino
A klónok CH340 Soros-USB illesztőjének drivere (Letöltés)
Lapozás: OK   234 / 850
(#) szeg76 válasza Tóth László hozzászólására (») Máj 27, 2016 /
 
Igazából ez a magamnak írt ékezetkezelő első verziója, ami ebben a formában még kellően univerzális.

Ezek szerint még kell pár módosítás.
A sizeof() operátor nem egészen úgy működik, mint elsőre gondoltam, a tmpstr esetén logikusan nem a benne tárolt szöveg hosszát, hanem a teljes neki lefoglalt méretet adja vissza.

Kell valami, ami a szöveg hosszát tárolja. A message és tmpstr környékén legyen:
byte tmphossz;

Az Ekezet() függvény legvégére tedd ezt a sort:
tmphossz=j-1;


A loop()-ban ezt
drawChar(56,16,tmpstr[count%(sizeof(tmpstr)-1)],0,false);
módosítsd erre:
drawChar(56,16,tmpstr[count%tmphossz],0,false);
(#) Tóth László válasza szeg76 hozzászólására (») Máj 27, 2016 /
 
-amennyiben mondat végén 5 karakter szünetet tartok, program részemről már használható/ 6-k karaktertől ír O-t /
(#) szeg76 válasza Tóth László hozzászólására (») Máj 27, 2016 /
 
Ez milyen hosszú szövegnél jelentkezik?
(#) kapu48 válasza Tóth László hozzászólására (») Máj 27, 2016 /
 
AVR-nél amig megszakitás rutinban vagy minden más megszakítás le van tiltva!

Ezért felesleges még külön tiltani őket, csak nyujtod vele a rutin futás idejét!
  1. ISR(TIMER2_COMPA_vect){  
  2.      cli();  // Tök feleslegesek!
  3.  ...
  4.      sei();
  5. };
A hozzászólás módosítva: Máj 27, 2016
(#) morzsa15 hozzászólása Máj 27, 2016 /
 
Sziasztok!

Ma reggel óta ezt csinálja eddig jó volt. Mi lehet a probléma?

Segítséget előre is köszönöm.
(#) csabeszq válasza kapu48 hozzászólására (») Máj 27, 2016 /
 
Nemcsak felesleges, hanem ártalmas is. Amikor kilép a függvény, felszabadítja a stack-et (verem) és legvégül engedélyezi az interruptot. Amikor feltorlódnak az interruptok, nincs előzés, egymás után hajtódnak végre.

Mi történik, ha meghívsz egy sei-t?

Interrupt feltorlódásnál amint kiadod, hogy sei() a következő utasítás interrupt meghívása lesz. Verem nem lesz felszabadítva, torlódásnál felfalod a memóriát és a vége nagy valószínűséggel fagyás lesz.

Egyszer alkalmaztam sei-t interruptban, amikor lassan tudtam csak a bejövő kéréseket feldolgozni. Ez olyan volt, mint egy szál indítás, ami addig tart, amíg fel nem dolgozódik minden. Közben persze az UART és a többi interrupt él és virul, a bonyolultabb kérések feldolgozása után kilépek az eredeti interrupt-ból.

Kezdőként tilos sei()-t kiadni interruptban. Mondjuk 5 év programozással és multithreading ismeretekkel a hátad mögött csináld először.
A hozzászólás módosítva: Máj 27, 2016
(#) kapu48 válasza morzsa15 hozzászólására (») Máj 28, 2016 /
 
Valószínű másik USB csatlakozóba dugtad mint ahol eddig volt?
És nem tudja a szükséges USB drivert fel tölteni.
(#) morzsa15 válasza kapu48 hozzászólására (») Máj 28, 2016 /
 
Akár melyik usb-be dugom ugyan ez a helyzet másik gépről tökéletesen megy. Érdekes..
(#) Tóth László válasza szeg76 hozzászólására (») Máj 28, 2016 /
 
67 karakter szöveg + 5 karakter szünet után
(#) szeg76 válasza Tóth László hozzászólására (») Máj 28, 2016 /
 
A kiíratáshoz átformázott szöveget tároló tömb, a tmpstr[] méretéhez lehet köze.
64 helyett foglalj neki nagyobb, mondjuk 200 byte területet, de e fölé további változtatások nélkül ne nagyon menj.
255 betűs szöveg fölött szükség lesz az Ekezet() elején a szöveg indexeléséhez használt
byte i=0,j=0;
helyett
unsigned int i=0, j=0;
deklarációt használni.

De ha hosszabb szövegeket is ki akarsz íratni, kezdd el átdolgozni az Ekezet() függvényben megvalósított átkódolást és a loop()-ot kitöltő kiíratást úgy, hogy egyáltalán ne legyen szükség a tmpstr[]-re, mint átmeneti tárolóra.
(#) szeg76 válasza szeg76 hozzászólására (») Máj 28, 2016 /
 
"255 betűs szöveg"
helyesebben
"255 bájtot foglaló szöveg"
ahol a méret (angol abc betűi, számok, írásjelek száma)*1byte + (ékezetes betűk száma)*2byte alapján számolandó.
(#) Tóth László válasza szeg76 hozzászólására (») Máj 28, 2016 /
 
elvégeztem az átalakítást, de tmpstr); csak 63 karakter írását engedélyezi /utolsó karakter kiírása után egyből megjelenik az első karakter

-hosszabb szövegeket is ki akarsz íratni, kezdd el átdolgozni az Ekezet() függvényben megvalósított átkódolást és a loop()-ot kitöltő kiíratást úgy, hogy egyáltalán ne legyen szükség a tmpstr[]-re, mint átmeneti tárolóra.

átdolgoznám, csak nem tudom hogyan tegyem
(#) szeg76 válasza Tóth László hozzászólására (») Máj 28, 2016 /
 
Így is besokall 63 karakterrel?
  1. char tmpstr[200];
(#) david10 hozzászólása Máj 28, 2016 /
 
Sziasztok, épitettem az Arduino-hoz egy CAN adaptert MCP2515-el és A82C250-el.
Az MCP2515-öt vásároltam, A82C250-öt egy müködőképes eszközből bontottam ki nyákkal együtt.
Ezen az oldalon találtam: Bővebben: Link.
Az A82C250 és az MCP2551 lábkiosztásra azonos.
A rajzot modosítóttam, mert más alkatrészeim voltak.(csatoltam)
A SparkFun-tól letöltöttem a Libraryt, és ezzel a koddal probáltam meg:
  1. /****************************************************************************
  2. CAN-Bus Demo
  3.  
  4. Toni Klopfenstein @ SparkFun Electronics
  5. September 2015
  6. https://github.com/sparkfun/CAN-Bus_Shield
  7.  
  8. This example sketch works with the CAN-Bus shield from SparkFun Electronics.
  9.  
  10. It enables the MCP2515 CAN controller and MCP2551 CAN-Bus driver, and demos
  11. using the chips to communicate with a CAN-Bus.
  12.  
  13. Resources:
  14.  
  15. Development environment specifics:
  16. Developed for Arduino 1.6.5
  17.  
  18. Based off of original example ecu_reader_logger by:
  19. Sukkin Pang
  20. SK Pang Electronics www.skpang.co.uk
  21.  
  22. This code is beerware; if you see me (or any other SparkFun employee)
  23. at the local, and you've found our code helpful, please buy us a round!
  24.  
  25. For the official license, please check out the license file included with the library.
  26.  
  27. Distributed as-is; no warranty is given.
  28. *************************************************************************/
  29.  
  30. #include <Canbus.h>
  31. char UserInput;
  32. int data;
  33. char buffer[456];  //Data will be temporarily stored to this buffer before being written to the file
  34.  
  35. void setup(){
  36. Serial.begin(9600);
  37. Serial.println("CAN-Bus Demo");
  38.  
  39. if(Canbus.init(CANSPEED_500))  /* Initialise MCP2515 CAN controller at the specified speed */
  40.   {
  41.     Serial.println("CAN Init ok");
  42.   } else
  43.   {
  44.     Serial.println("Can't init CAN");
  45.   }
  46.  
  47.   delay(1000);
  48. }

A gond az az, hogy a Serial monitoron Can't init CAN szöveget kapom. (Autóhóz még nem csatlakoztattam).
A másik gond az az, hogy egy 70Mhz-es oszcsilloszóppal megmérve a 20Mhz-es kvarc lábain nincsen órajel.
A 4 ledből egy sem villog.
Szerintetek miért nincsen órajel?
Hogyha csatlakoztatom az autóhóz, akkor lesz vajon órajel?
A választ előre is köszönöm.

rajz_mod.png
    
(#) Tibicsek válasza david10 hozzászólására (») Máj 28, 2016 /
 
a programban nem szerepelnek ledek ez csak annyiből áll, hogy Ha "if(Canbus.init(CANSPEED_500))" feltétel teljesül serialra kiírja, hogy Can Init ok különben pedig Can't init CAN
(#) david10 válasza Tibicsek hozzászólására (») Máj 28, 2016 /
 
Köszönöm a válaszodat!
Az Arduino-ra nincsen egy LED se kötve, a LEDek a soros vonal(akra) vannak kötve.A rajzon a ''nagy IC'' az a MCP2515, azon vannak a ledek.
(#) ultraviola0 hozzászólása Máj 29, 2016 /
 
Sziasztok!
Szeretnék egy kódot be fordítani de folyamatosan hiba üzenetekbe ütközök!
A kódot lehetséges e uno alá át konfigurálni ?

Bővebben: Link


  1. Build options changed, rebuilding all
  2. libraries\Modbus\SimpleModbusSlave.cpp.o:(.bss.TxEnablePin+0x0): multiple definition of `TxEnablePin'
  3.  
  4. libraries\Modbus\SimpleModbusMasterSDM120.cpp.o.bss.TxEnablePin+0x0): first defined here
  5.  
  6. c:/program files/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: Disabling relaxation: it will not work with multiple definitions
  7.  
  8. libraries\Modbus\SimpleModbusSlave.cpp.o: In function `modbus_configure(long, unsigned char, unsigned char, unsigned int, unsigned char)':
  9.  
  10. C:\Program Files\Arduino\libraries\Modbus/SimpleModbusSlave.cpp:23: multiple definition of `T1_5'
  11.  
  12. libraries\Modbus\SimpleModbusMasterSDM120.cpp.o:C:\Program Files\Arduino\libraries\Modbus/SimpleModbusMasterSDM120.cpp:212: first defined here
  13.  
  14. libraries\Modbus\SimpleModbusSlave.cpp.o: In function `modbus_configure(long, unsigned char, unsigned char, unsigned int, unsigned char)':
  15.  
  16. C:\Program Files\Arduino\libraries\Modbus/SimpleModbusSlave.cpp:23: multiple definition of `calculateCRC(unsigned char)'
  17.  
  18. libraries\Modbus\SimpleModbusMasterSDM120.cpp.o:C:\Program Files\Arduino\libraries\Modbus/SimpleModbusMasterSDM120.cpp:212: first defined here
  19.  
  20. libraries\Modbus\SimpleModbusSlave.cpp.o: In function `modbus_configure(long, unsigned char, unsigned char, unsigned int, unsigned char)':
  21.  
  22. C:\Program Files\Arduino\libraries\Modbus/SimpleModbusSlave.cpp:23: multiple definition of `frame'
  23.  
  24. libraries\Modbus\SimpleModbusMasterSDM120.cpp.o:C:\Program Files\Arduino\libraries\Modbus/SimpleModbusMasterSDM120.cpp:212: first defined here
  25.  
  26. c:/program files/arduino/hardware/tools/avr/bin/../lib/gcc/avr/4.8.1/../../../../avr/bin/ld.exe: Warning: size of symbol `frame' changed from 64 in libraries\Modbus\SimpleModbusMasterSDM120.cpp.o to 128 in libraries\Modbus\SimpleModbusSlave.cpp.o
  27.  
  28. libraries\Modbus\SimpleModbusSlave.cpp.o: In function `modbus_configure(long, unsigned char, unsigned char, unsigned int, unsigned char)':
  29.  
  30. C:\Program Files\Arduino\libraries\Modbus/SimpleModbusSlave.cpp:23: multiple definition of `sendPacket(unsigned char)'
  31.  
  32. libraries\Modbus\SimpleModbusMasterSDM120.cpp.o:C:\Program Files\Arduino\libraries\Modbus/SimpleModbusMasterSDM120.cpp:212: first defined here
  33.  
  34. collect2.exe: error: ld returned 1 exit status
  35.  
  36. exit status 1
  37. Error compiling
A hozzászólás módosítva: Máj 29, 2016
(#) icserny válasza david10 hozzászólására (») Máj 29, 2016 /
 
Idézet:
„Szerintetek miért nincsen órajel?”
Valószínűleg azért, mert a rajzod szerint a RESET láb a levegőben lóg, nincs felhúzva.
A hozzászólás módosítva: Máj 29, 2016
(#) Tóth László válasza szeg76 hozzászólására (») Máj 29, 2016 /
 
mondat befejezése után hosszú szünet, majd kiír vagy 40 darab O-t ponttal a közepén, utána mondat ismétlődik, ismétlés után hosszú szünet, majd kb 40db O stb..
program jó lenne, ha O karaktereket törölni lehetne
(#) david10 válasza icserny hozzászólására (») Máj 29, 2016 /
 
Köszönöm a válaszodat!
A probléma megoldodott: a D10-es lábra rá volt kötve a CS, de a programban 9-es ként volt beírva.
További szép napot minden kinek!
(#) morzsa15 hozzászólása Máj 29, 2016 /
 
Sziasztok!

Vásároltam egy esp8266 wifi modult. De akár mit töltök rá semmit se csinál. Nem lenne gyárilag fw? Vagy mi lehet a baja tanácstalan vagyok?!

Minden segítséget szívesen fogadok!
(#) icserny válasza morzsa15 hozzászólására (») Máj 29, 2016 /
 
Ha biztosra akarsz menni, akkor tölts rá egy firmware-t.
Egyébként pedig az ESP8266 wifi modul c. topikban folytassuk!
(#) mps válasza morzsa15 hozzászólására (») Máj 29, 2016 /
 
Melyik modult vetted? RST, EN, Gpio0 felhúzva 3,3V-ra, ha nem ESP1 akkor a Gpio15-öt le kell húzni GND-re.
(#) morzsa15 válasza mps hozzászólására (») Máj 29, 2016 /
 
Írtam a topicjába.
(#) kegyetlen19 hozzászólása Máj 29, 2016 /
 
Sziasztok.
Nemrégiben érkezett meg az Ebay-röl rendelt Arduino (Funduino)Mega-m. MEGA16U2 az illesztője. Win7 nem ismeri fel.
Kérdésem, hogy a windows-nak fel kéne ismernie és automatán kellene-e telepíteni hozzá a drivert, vagy ez is hasonló mint a HC340?

MEGA16U2.jpg
    
(#) Tibicsek válasza kegyetlen19 hozzászólására (») Máj 30, 2016 /
 
Az összes arduinohoz kell egy alap illlesztő program ezt az arduino.cc-ről letudod tölteni
(#) kegyetlen19 hozzászólása Máj 30, 2016 /
 
A letöltött és telepített / kicsomagolt Arduino keretrendszer könyvtárában van egy Driver könyvtár is, azt kel betallózni és telepíti is a Mega16U2 drivert Win7 alá is.
A hozzászólás módosítva: Máj 30, 2016
(#) minimodel hozzászólása Máj 30, 2016 /
 
Sziasztok! Sikeresen feltöltöttem Bootloadert Arduino UNO R3-mal egy ATmega 8-16PU-ra. Az a kérdésem, hogy azon ugyanúgy el fog futni egy Arduino-ra írt program vagy csak a C nyelvűeket lehet rátölteni? Talán érdemes lenne ezt tesztelni egy sima LED villogtatóval?
(#) bunny hozzászólása Máj 30, 2016 /
 
Új arduino modulok beépített wifi, bt, infra, NFC
Várjuk a kínaiak gyors reagálását
(#) csabeszq válasza bunny hozzászólására (») Máj 31, 2016 /
 
Remélem komoly verseny lesz, nem úgy, mint a Due-nél, ami a 4000 Ft körüli árával felejtős téma.

Idén Augusztusban jön ki az ESP32: dual core, 160 MHz, wifi, bluetooth, 4MByte flash, DAC, ADC, I2C, SPI, CAN, PWM, 416KB SRAM,...

Az árat még nem tudni, de ha a kínaiak a 2000 Ft-os kategóriát becélozzák, tarolni fognak. Úgy vettem észre, hogy az Arduino-k a 10k körüli árukkal igazából már csak a márkából élnek, mert nem versenyképesek.
A hozzászólás módosítva: Máj 31, 2016
Következő: »»   234 / 850
Bejelentkezés

Belépés

Hirdetés
XDT.hu
Az oldalon sütiket használunk a helyes működéshez. Bővebb információt az adatvédelmi szabályzatban olvashatsz. Megértettem