Sida 2 av 6

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 13:03:44
av BJ
Jag svarar mig själv om antalet rader:

Kod: Markera allt

void LiquidCrystal::setRowOffsets(int row0, int row1, int row2, int row3)
{
  _row_offsets[0] = row0;
  _row_offsets[1] = row1;
  _row_offsets[2] = row2;
  _row_offsets[3] = row3;
}

Kod: Markera allt

void LiquidCrystal::begin(uint8_t cols, uint8_t lines, uint8_t dotsize) {
  if (lines > 1) {
    _displayfunction |= LCD_2LINE;
  }
  _numlines = lines;

  setRowOffsets(0x00, 0x40, 0x00 + cols, 0x40 + cols);

  ...
}
Så svaret på den frågan verkar vara ja, det går
att använda skärmar med mer än 2 rader.

Då är frågan kvar hur konstruktören kan känna av
vilka argument den får?
Räknar den antalet argument, och parar ihop det
med rätt konstruktör?

Så här ser det ut:

Kod: Markera allt

LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
			     uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
{
  init(0, rs, rw, enable, d0, d1, d2, d3, d4, d5, d6, d7);
}

LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t enable,
			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
			     uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
{
  init(0, rs, 255, enable, d0, d1, d2, d3, d4, d5, d6, d7);
}

LiquidCrystal::LiquidCrystal(uint8_t rs, uint8_t rw, uint8_t enable,
			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
{
  init(1, rs, rw, enable, d0, d1, d2, d3, 0, 0, 0, 0);
}

LiquidCrystal::LiquidCrystal(uint8_t rs,  uint8_t enable,
			     uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3)
{
  init(1, rs, 255, enable, d0, d1, d2, d3, 0, 0, 0, 0);
}
När rw fattas så används 255 i stället,
och när D4 till D7 fattas så används nollor,
och "fourbitmode" sätts till 1.

Kod: Markera allt

void LiquidCrystal::init(uint8_t fourbitmode, uint8_t rs, uint8_t rw, uint8_t enable,
			 uint8_t d0, uint8_t d1, uint8_t d2, uint8_t d3,
			 uint8_t d4, uint8_t d5, uint8_t d6, uint8_t d7)
{
  ...
}

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 13:58:02
av Klas-Kenny
Ja, den kollar om antal och typer av argument stämmer överens med någon utav de funktioner som finns deklarerade, och väljer den som stämmer överens.

Inget Arduino-specifikt på något sätt.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 13:59:21
av BJ
Okej. Tack. :tumupp:

Tar den kontrollen mycket program-minne?
Det låter ju som något med mycket
jämförelser i?

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 14:00:24
av nifelheim
om du följde länken jag postade såg du väl att jag svarat på hur man anger antal rader,
:)

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 14:05:52
av BJ
Tack, men det stog inget där om om den klarar
4 rader, eller bara 1 eller 2.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 14:06:55
av Klas-Kenny
BJ skrev:Okej. Tack. :tumupp:

Tar den kontrollen mycket program-minne?
Det låter ju som något med mycket
jämförelser i?
Det är ju kompilatorn som löser, har inget med kompilerat program att göra.



Edit: Komponerat -> Kompilerat, damn you Autocorrect.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 14:29:57
av BJ
Okej.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 15:40:05
av lillahuset
Gör som SeniorLemuren föreslår och gå igenom Lawicels Arduinoskola. Både läs och gör praktiskt. Sedan kan du säkert ställa bättre frågor och lättare avgöra om svaren du får är bra eller inte.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 17:52:30
av BJ
Jag tittar allt på skolorna också.
Dom är intressanta, men det blir mycket
att läsa igenom om man måste läsa allt
för att våga fråga någonting.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 17:58:06
av Nerre
BJ skrev: - Hur känner konstruktören av att ett visst argument fattas?
Det där är väl en grej som kommer från C++ har jag för mig, trots att de båda funktionerna har samma namn så räknas de som två olika funktioner eftersom de har olika antal argument.

Så den känner inte direkt av att rw saknas, den räknar antalet argument och beroende på hur många argument du anropar funktionen med så väljer den vilken av dem som gäller.

Överlagring kallas det. Kolla 6.6 en bit ner på den här sidan: http://user.it.uu.se/~tdb2/privat/forant/funktioner/

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 18:05:18
av BJ
Okej. Tack. :tumupp:

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 18:23:39
av lillahuset
BJ skrev:Jag tittar allt på skolorna också.
Dom är intressanta, men det blir mycket
att läsa igenom om man måste läsa allt
för att våga fråga någonting.
Ja jösses, Lawicels skola innehöll ju fruktansvärt många sidor så det förstår jag känns helt hopplöst att ta sig igenom.
Förfärligt att komma dragande med sjutton (fick jag det till) sidor med ungefär hälften bilder. Vad tänkte Lars W på?
Men du kan kanske hitta en genväg. Lycka till med dina arduinoprojekt!

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 18:29:42
av BJ
Jag tänkte på flera skolor som jag har tittat på.
Inte bara just den.

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 18:33:52
av lillahuset
Kanske skulle börja med Lawicels då. Kort och koncis och kräver nästan ingen uthållighet. :)

Re: Hur kommer man igång med arduino?

Postat: 1 november 2017, 19:47:51
av BJ
Okej. :)