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   284 / 864
(#) pjg válasza (Felhasználó 120038) hozzászólására (») Okt 25, 2016 /
 
Azt tudom, hogy ez a fajta változó a program memóriában kap helyet már a fordításkor. Nem a SRAM-ban.
(#) icserny válasza pjg hozzászólására (») Okt 25, 2016 /
 
Idézet:
„ez a fajta változó a program memóriában kap helyet már a fordításkor.”

Dehogyis! A programmemóriában csak konstansokat tárolunk, amelyeknek futás közben nem változik meg az értéke. A volatile-nak (illékonynak) deklarált változó is a RAM-ban helyezkedik el, csupán jelezzük a fordítónak, hogy a változó tartalmát minden hivatkozásnál olvassa ki újra, mert megszakítás vagy más esemény módosíthatta annak tartalmát az előző kiolvasás óta.

A CPU és a periféria regiszterekhez történő hozzáférés is volatile típusúnak van deklarálva, mivel azok tartalma is megváltozhat két kiolvasás között - a hardver működése következtében.
(#) pjg válasza icserny hozzászólására (») Okt 25, 2016 /
 
Köszönöm a helyreigazítást. Google fordító barátom megint félrevezetett.
(#) vizor válasza pjg hozzászólására (») Okt 25, 2016 /
 
Mit értesz félrefordítás alatt? Mert ez a RAM dolog ott van az Arduino referenciában. Néha érdemesebb a keresett kérdést a "Stack Overflow" fórumra mutató találatokon nézni, mert sokszor ezerszer érthetőbben leírják mint a hivatalos leírásban és ezekkel a szövegekkel a Google is jobban boldogul, mert sokkal részletesebbek. Agent_Z a "kiemelt figyelmet" jelezte csak nem írta le, hogy a RAM-ban van, de icsernyi már tökéletesen leírta a lényegét. Szerintem még az is fontos, hogy a fordító nem fogja kioptimalizálni a látszólag értelmetlen változókat vagy feltételeket amik csak megszakításban módosulnak.
A hozzászólás módosítva: Okt 25, 2016
(#) prmihaly válasza (Felhasználó 120038) hozzászólására (») Okt 25, 2016 /
 
Köszönöm a részletes választ, egyébként én is valami csúlcsordulásra gondoltam, de tökéletes válaszod után már azt hiszem kezdem érteni.
Ezek szerint a ,, 1. volatile unsigned int rpmcount" úgy kell érteni, hogy nincs meghatározva , hogy meddig számol, nem csak 1 byte , 256-ig van bekorlátozva a számolás?
(#) vizor válasza prmihaly hozzászólására (») Okt 25, 2016 /
 
Arduino-n az int 2 byte hosszú, vagyis 16 bites, így -32768 és +32767 között tud számolni. Ha elé teszed az unsigned szót akkor az int 0 és 65535 között tud számolni. A byte meg byte, 0-255 között. Unsigned=előjel nélküli int. Az előjel 1 bitet használ el, ezért az eltérés. A volatile-t meg elmagyarázták ez előtt.
A hozzászólás módosítva: Okt 25, 2016
(#) (Felhasználó 120038) válasza prmihaly hozzászólására (») Okt 26, 2016 /
 
Nincs mit.

Sokat tanulok itt én is, mert mint látod írok valamit, arra bővebb magyarázat is jön, megvitatjuk a dolgokat.
(#) szucsistvan123 hozzászólása Okt 26, 2016 /
 
Üdv!
A képen látható panelt milyen néven találom meg ebay-en?
(TávIR webshopban találtam Bővebben: Link)
Előre is köszi!
(#) teglascs válasza szucsistvan123 hozzászólására (») Okt 26, 2016 / 1
 
Ha't ezt sehogy, szerintem. Ezt a tanfolyamvezeto" Robi maga gya'rtatja, direkt a tanfolyam anyaga'hoz.
(#) szucsistvan123 válasza teglascs hozzászólására (») Okt 26, 2016 /
 
Köszi a választ!
Azt hittem, ez is olyan ebay-es cucc!
(#) brumbrus hozzászólása Okt 27, 2016 /
 
Üdv!
Kérdésem a következő:
Van egy NEC NL 8048BC19-02C kijelzőm:
http://www.avnet-embedded.eu/fileadmin/user_upload/Files/Displays_N...2C.pdf
Ezt valahogy arduinoval életre lehetne kelteni?
(#) hadhazik hozzászólása Okt 27, 2016 /
 
SainSmart CTE LCD 3.2" +Arduino Due Shield +Arduino Due kombót összepattintva az LCD-n csak fehér képernyő fogad.
A kód: UTFT_Demo_320x240 (C)2012 Henning Karlsen.
Sikerült a fenti összeállítást valakinek működésre bírnia, és hogyan?
A hardwer elvileg jól van beállítva, a kódban:
#define CTE_DUE_SHIELD 1
UTFT myGLCD(ITDB32S,25,26,27,28);
URTouch myTouch(6,5,32,3,2);
benne.
(#) kapu48 válasza brumbrus hozzászólására (») Okt 27, 2016 1 /
 
Nem lehet!
(#) brumbrus válasza kapu48 hozzászólására (») Okt 27, 2016 /
 
Ok! De valamivel biztos életre lehet. De mivel? Hogyan?
Köszönöm!
(#) RoliNyh válasza brumbrus hozzászólására (») Okt 27, 2016 /
 
Ezt nézd végig, és egyértelmű lesz szerintem, hogy ez nem hobbi kategória, amit egy fórumon fognak megoldani...

Microcontroller controll LVDS display...
(#) Bakman válasza brumbrus hozzászólására (») Okt 27, 2016 /
 
Olyan eszközzel, aminek van LVDS kimenete. Az adatlap szerint LVDS csatolófelületű a kijelző, nem egy egyszerű mikrokontrollernek való feladat.
(#) RoliNyh válasza brumbrus hozzászólására (») Okt 27, 2016 /
 
Itt még arról is szó van kb milyen hardver kellene hozzá:

Bővebben: Link
(#) atus1981 hozzászólása Okt 27, 2016 /
 
Sziasztok!
Olyan gondom lett, hogy hegesztőgéptől pár méterre található eszköz lefagy és kézi reset vagy restart után normálisan működik, amíg párszor ívet nem fog a szaki a munkadarabon. Természetesen nem a hegesztőgépet vezérli, hanem a fűtési rendszert. Tettem már rá Faraday kalitkát, kondikat, hidegítést de egyik sem jött be. Alkalmaznám a watchdog nevű dolgot, így nem kellene figyelni, hogy mikor fagy le, reseteli magát, ha így van.
Találtam is egy mintát, amit integrálnék a programba, de egy helyen azt olvastam, hogyha az arduino watchdog miatt resetel, akkor programfrissítésig nem indul a főprogram?! Vagyis ha nem töltök rá másik programot a chipre, addig nem is csinál semmit?
Itt a példa, amit találtam:
  1. #include<avr/wdt.h>
  2. int i=0;
  3. void setup() {
  4. pinMode(13,OUTPUT);
  5. Serial.begin(9600);
  6. wdt_enable (WDTO_2S);// az állási idő behatárolása
  7. }
  8. void loop() {
  9. Serial.println(i);
  10. digitalWrite(13,HIGH);
  11. delay(1000);
  12. digitalWrite(13,LOW);
  13. delay(1000);
  14. i++;
  15. wdt_reset();
  16. }

Ebből csak a lényeget használnám, sallangok nélkül.
(#) vargaf válasza brumbrus hozzászólására (») Okt 27, 2016 /
 
Miért kell két helyre is feltenni ugyanazt a kérdést?
(#) RoliNyh válasza atus1981 hozzászólására (») Okt 27, 2016 /
 
Vagy én keverek valamit, vagy te értelmezed félre a wachdog-ot, de én úgy tudom, épp azért találták ki, ha programfagyás van, akkor resetelje magát a rendszer egy bizonyos (beállított) időn belül, épp azért hogy újraindúljon. De az nem a firmware frissítésre fog várni...
(#) kapu48 válasza brumbrus hozzászólására (») Okt 27, 2016 1 /
 
Ha szerencséd van és megvan hozzá a : LVDS Display controller kártya?
És azon van VGA bemenet?

Akkor arduino DUE-ra már találsz VGA alkalmazást!
(#) kapu48 válasza atus1981 hozzászólására (») Okt 27, 2016 1 /
 
Ezt nem tudom hol olvastad?
Szerintem nem igaz!

És ha a főprogram hurokban gondoskodsz a wdt_reset(); -röl, beállított időn belül
(wdt_enable (WDTO_2S);// 2sec az állási idő behatárolása) akkor működni e kel.
(#) hadhazik válasza hadhazik hozzászólására (») Okt 27, 2016 /
 
Megtaláltam az egyetlen kódot, amivel működik a CTE LCD 3.2" + DUE :
// UTFT_Demo with Font and icon Flash IC
// (C) 2012 Coldtears electronics
// For use with CTE 3.2" TFT LCD Module w/Font and Icon Flash IC
// in combination with CTE TFT/SD Shield for Arduino DUE
//web: http://stores.shop.ebay.com/coldtears-electronics-store
//
// Demo code and UTFT library freely modified from Henning Karlsen's UTFT Library
// Original by
// UTFT_Demo_320x240 (C)2012 Henning Karlsen
// web: http://www.henningkarlsen.com/electronics
//
// The first part of the demo is to show how to use the font IC to draw font to the LCD,
// The IC also include some commonly used and open source icons
// great for custom application development.
//
//
// This second part of the demo is by Henning Karlsen,
// showing how to use most of the functions
// of the library with a supported display modules.
//
// This demo was made for modules with a screen resolution
// of 320x240 pixels.
//
// This program requires the UTFT library which is modified by Coldtears electronics
//

Version:
1.0 12 Feb 2012 - initial release
1.1 09 Apr 2012 - added support for more display modules
added support for String objects to print()
fixed a bug in printNumF()
added optional minimum length and filler character to pintNumI() and printNumF()
added option to disable unneeded controller chip code to minimize memory use
1.2 14 Apr 2012 - added support for more display modules
added getDisplayXSize() and getDisplayYSize()
1.3 03 Jun 2012 - added support for more display modules
fixed a bug in the ITDB02-25H init
(#) vyky hozzászólása Okt 29, 2016 /
 
Sziasztok.Egy kis segítséget szeretnék kérni. Adott egy Uno és vettem hozzá egy L293-at. Ezt össze is kötöttem a neten,talált rajzok alapján. Szépen forog,jobbra-balra. De azt szeretném hogy PWM kitöltéssel forogjon,azaz lassúból legyen gyors mint két forgásközben.
Nem tudom érthető-e?
Előre is köszönöm.
(#) Kovidivi válasza vyky hozzászólására (») Okt 29, 2016 /
 
Nyisd meg az IC adatlapját és keresd meg az EN vagyis enable vagyis engedélyező lábakat. Erre kell pwm jelet adni.
(#) vyky válasza Kovidivi hozzászólására (») Okt 29, 2016 /
 
Szia. Köszönöm a tanácsot,de ez megtörtént. A program írással van bajom
Jelenleg ez fut:
  1. int motor_left[] = {2, 3};
  2.  
  3. // --------------------------------------------------------------------------- Setup
  4. void setup() {
  5. Serial.begin(9600);
  6.  
  7. // Setup motors
  8. int i;
  9. for(i = 0; i < 2; i++){
  10. pinMode(motor_left[i], OUTPUT);
  11.  
  12. }
  13.  
  14. }
  15.  
  16. // --------------------------------------------------------------------------- Loop
  17. void loop() {
  18.  
  19. drive_forward();
  20. delay(1000);
  21. motor_stop();
  22. Serial.println("1");
  23.  
  24. drive_backward();
  25. delay(1000);
  26. motor_stop();
  27. Serial.println("2");
  28.  
  29. turn_left();
  30. delay(1000);
  31. motor_stop();
  32. Serial.println("3");
  33.  
  34. turn_right();
  35. delay(1000);
  36. motor_stop();
  37. Serial.println("4");
  38.  
  39. motor_stop();
  40. delay(1000);
  41. motor_stop();
  42. delay(1000);
  43. Serial.println("5");
  44. }
  45.  
  46. // --------------------------------------------------------------------------- Drive
  47.  
  48. void motor_stop(){
  49. digitalWrite(motor_left[0], LOW);
  50. digitalWrite(motor_left[1], LOW);
  51.  
  52. delay(1000);
  53. }
  54.  
  55. void drive_forward(){
  56. digitalWrite(motor_left[0], HIGH);
  57. digitalWrite(motor_left[1], LOW);
  58. delay(1000);
  59. }
  60.  
  61. void drive_backward(){
  62. digitalWrite(motor_left[0], LOW);
  63. digitalWrite(motor_left[1], HIGH);
  64. delay(1000);
  65. }
  66.  
  67. void turn_left(){
  68. digitalWrite(motor_left[0], LOW);
  69. digitalWrite(motor_left[1], HIGH);
  70. delay(1000);
  71. }
  72.  
  73. void turn_right(){
  74. digitalWrite(motor_left[0], HIGH);
  75. digitalWrite(motor_left[1], LOW);
  76. delay(1000);
  77. }

Ehhez kellene a pwm.
(#) Kovidivi válasza vyky hozzászólására (») Okt 29, 2016 /
 
A PWM jelet már a setup részben kiadhatod az EN lábakra, ezt fixen megkaphatja, és menet közben pedig tudod változtatni. PWM jelet azért csak tudsz készíteni?
(#) vyky válasza Kovidivi hozzászólására (») Okt 29, 2016 /
 
Sikerült.Úgy látszik csak ide kell írni és minden beugrik
Ez a kód fut:
  1. int motor_left[] = {2, 3};
  2. int pwmPin = 9;
  3. // --------------------------------------------------------------------------- Setup
  4. void setup() {
  5.   int i;
  6. for(i = 0; i < 2; i++){
  7. pinMode(motor_left[i], OUTPUT);
  8. }
  9. }
  10.  
  11. // --------------------------------------------------------------------------- Loop
  12. void loop() {
  13.   digitalWrite(motor_left[0], HIGH);
  14. digitalWrite(motor_left[1], LOW);
  15.  
  16.   //Apply PWM to the motor
  17.  for(int i=0; i<=255; i++)
  18.  {
  19.      analogWrite(pwmPin, i);
  20.        delay(50);
  21.  }
  22.        
  23.  delay(1000);
  24.  
  25.  for(int i=255; i>=0; i--)
  26.  {
  27.      analogWrite(pwmPin, i);
  28.        delay(50);
  29.  }
  30.   digitalWrite(motor_left[0], LOW);
  31. digitalWrite(motor_left[1], HIGH);
  32. delay(2000);
  33.    for(int i=255; i>=0; i--)
  34.  {
  35.      analogWrite(pwmPin, i);
  36.        delay(50);
  37.  }
  38.   delay(1000);
  39.  
  40.    for(int i=0; i<=255; i++)
  41.  {
  42.      analogWrite(pwmPin, i);
  43.        delay(50);
  44.  }
  45.   }

Tudom lehetne jobb is,de erre futotta csak.
(#) atus1981 válasza kapu48 hozzászólására (») Okt 29, 2016 /
 
(#) atus1981 válasza RoliNyh hozzászólására (») Okt 29, 2016 /
 
Köszi.
Setupban is lehet wdt_reset(); sort alkalmazni?
Következő: »»   284 / 864
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