Stránka 1 z 1
Arduino UNO port D
Napsal: 14 led 2018, 19:48
od LubosN
mám na stole Arduino UNO a následující problém:
potřebuji číst paralelně celý port D, použil jsem instrukci DDRD a výsledek je stále nula bez ohledu na stav pinů.
Pokud čtu jednotlivé bity tohoto portu, tak je to v pořádku. Paralelní čtení se nedaří a nedaří...
věděl by někdo jak na to ?
děkuji
LN
Re: Arduino UNO port D
Napsal: 14 led 2018, 20:36
od pavel1tu
Já o tom pouze četl.
1) všude se píše, že lze celý port načíst, nebo do něj zapsat
2) všechny příklady jsou pro zápis ... to jsem teď vyzkoušel, jak číst jsem nenašel ...
Re: Arduino UNO port D
Napsal: 15 led 2018, 03:23
od ohruska
Mě to funguje.
Kód: Vybrat vše
//Blikání ledky 13 je viditelne
void setup()
{
Serial.begin(9600);
DDRB = B11111111; // Nastaví set PORTD (digital 13~6) to outputs
Serial.println(DDRB,BIN);
}
void loop()
{
PORTB = B11110000; // digital 13~10 HIGH, digital 9~6 LOW
delay(1000);
Serial.println(PINB,BIN);//Nacte stav portu
Serial.println(PINB,HEX); //Nacte stav portu
PORTB = B00001111; // digital 13~10 LOW, digital 9~6 HIGH
delay(1); //Je treba zadat preodlevu pro nactení přestavených portu
Serial.println(PINB,BIN); //Nacte stav portu (bez prodlevy spatne)
Serial.println(PINB,BIN); //Nacte stav portu
Serial.println(PINB,HEX); //Nacte stav portu
delay(1000);
Serial.println();
}
Re: Arduino UNO port D
Napsal: 15 led 2018, 15:37
od pavel1tu
Díky, asi je to tím, že te zkouším na PRO a ještě nějaký dost divný klon, prodleva musí být ještě delší a nastavoval jsem špatně verzi CPU, ach jo ...