|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
elektrolit Član
Pridružen-a: Sre 24 Feb 2021 21:06 Prispevkov: 163 Aktiv.: 4.10 Kraj: Kranj
|
|
Nazaj na vrh |
|
|
elektrolit Član
Pridružen-a: Sre 24 Feb 2021 21:06 Prispevkov: 163 Aktiv.: 4.10 Kraj: Kranj
|
Objavljeno: Tor Feb 27, 2024 10:02 pm Naslov sporočila: |
|
|
Še izvorna koda:
Koda: |
#include <avr/io.h>
void Delay(void);
void setup() {
// put your setup code here, to run once:
DDRB = 0x3F;
}
void loop() {
// put your main code here, to run repeatedly:
PORTB = 0x3F;
Delay();
PORTB = 0x00;
Delay();
}
void Delay(void)
{
volatile unsigned long count = 50000;
while (count--);
} |
|
|
Nazaj na vrh |
|
|
elektrolit Član
Pridružen-a: Sre 24 Feb 2021 21:06 Prispevkov: 163 Aktiv.: 4.10 Kraj: Kranj
|
Objavljeno: Tor Feb 27, 2024 10:34 pm Naslov sporočila: |
|
|
Sicer sedaj krmilim kar vse izhode, ampak bom že ugotovil pravi bit oziroma pravilno naslavljanje za želeni izhod (verjetno so vse informacije v priponki).
Dodam še kakšen komentar kasneje...
Opis: |
|
Velikost datoteke: |
58.54 KB |
Pogledana: |
4 krat |
|
Opis: |
|
Velikost datoteke: |
139.14 KB |
Pogledana: |
1 krat |
|
|
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3361 Aktiv.: 16.88
|
Objavljeno: Sre Feb 28, 2024 9:23 am Naslov sporočila: |
|
|
Vklop samo enega izhodnega pina (oz. samo enega bita kjerkoli postaviti na 1)
Koda: |
PORTB |= (1 << št. bita); //št. bita ima vrednost 0 - 7 |
druga varianta, za dva bita
Koda: |
PORTB |= (0b00010100); // bite z vrednostjo 0 pusti pri miru, 1ke postavi na 1 |
operator |= zgoraj je bitna operacija ALI na določenih bitih.
Izklop samo enega izhodnega pina (oz. postaviti vrednost nekega bita na 0)
Koda: |
PORTB &= ~(1 << št. bita); //št. bita ima vrednost 0 - 7 |
druga varianta
Koda: |
PORTB &= ~(0b00010100); // bite z vrednostjo 0 pusti pri miru, 1ke postavi na 0 |
Operator &= zgoraj je bitna IN operacija, znak pred oklepajem ~ pa je negacija tistega v oklepaju. Torej tisto v oklepaju spremeni v 0b11101011 in s t vrednostjo izvede IN operacijo.
Še tretja osnovna uporabna funkcija je XOR (ekskluzivni ALI). Za njeno razlago malo pobrskaj po spletu.
V tem primeru spodaj pa spremeni vrednost bita iz trenutnega stanja v nasprotno. Torej iz 1->0 ali iz 0->1
Koda: |
PORTB ^= (1 << št. bita); |
|
|
Nazaj na vrh |
|
|
|
|
Ne, ne moreš dodajati novih tem v tem forumu Ne, ne moreš odgovarjati na teme v tem forumu Ne, ne moreš urejati svojih prispevkov v tem forumu Ne, ne moreš brisati svojih prispevkov v tem forumu Ne ne moreš glasovati v anketi v tem forumu Ne, ne moreš pripeti datotek v tem forumu Ne, ne moreš povleči datotek v tem forumu
|
Uptime: 112 dni
Powered by phpBB © 2001, 2005 phpBB Group
|