www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

ATTINY45 - utripanje LED, pogojno
Pojdi na stran Prejšnja  1, 2
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
elektrolit
Član
Član



Pridružen-a: Sre 24 Feb 2021 21:06
Prispevkov: 161
Aktiv.: 4.17
Kraj: Kranj

PrispevekObjavljeno: Tor Feb 27, 2024 10:01 pm    Naslov sporočila:   Odgovori s citatom

DELUJE! Very Happy


PORTB3.jpg
 Opis:
Signal na PORTB3.
 Velikost datoteke:  33.6 KB
 Pogledana:  2 krat

PORTB3.jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
elektrolit
Član
Član



Pridružen-a: Sre 24 Feb 2021 21:06
Prispevkov: 161
Aktiv.: 4.17
Kraj: Kranj

PrispevekObjavljeno: Tor Feb 27, 2024 10:02 pm    Naslov sporočila:   Odgovori s citatom

Š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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
elektrolit
Član
Član



Pridružen-a: Sre 24 Feb 2021 21:06
Prispevkov: 161
Aktiv.: 4.17
Kraj: Kranj

PrispevekObjavljeno: Tor Feb 27, 2024 10:34 pm    Naslov sporočila:   Odgovori s citatom

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...



1.jpg
 Opis:
 Velikost datoteke:  58.54 KB
 Pogledana:  4 krat

1.jpg



2.jpg
 Opis:
 Velikost datoteke:  139.14 KB
 Pogledana:  1 krat

2.jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3356
Aktiv.: 16.96

PrispevekObjavljeno: Sre Feb 28, 2024 9:23 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran Prejšnja  1, 2
Stran 2 od 2

 
Pojdi na:  
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: 77 dni


Powered by phpBB © 2001, 2005 phpBB Group