Kanał - ATNEL tech-forum
Wszystkie działy
Najnowsze wątki



Teraz jest 22 mar 2026, o 09:55


Strefa czasowa: UTC + 1





Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 
Autor Wiadomość
PostNapisane: 29 mar 2014, o 21:04 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

Że jako jestem "początkującym" i żeby nie budować akurat "rakiety" postanowiłem zabrać się za pierwszy kod z migającą diodą
(str 185 blue booka) od razu piszę że zgodnie z poleceniem w książce zabrałem się za zmianę kodu a mianowicie dodałem 2 diody LED na oddzielnych pinach i wygląda to tak:
Składnia: [ Pobierz ] [ Ukryj ]
język c
Musisz się zalogować, aby zobaczyć kod źródłowy. Tylko zalogowani użytkownicy mogą widzieć kod.

Kod oczywiście działa wszystkie ledy migają
I mam takie pytanie czy ten kod jest napisany najlepiej jak to było możliwe czy można to zrobić to jeszcze lepiej ?

Kody wklejamy przy pomocy syntax=c - Różowo-zielony J.

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:16 
Offline
Użytkownik

Dołączył(a): 10 lip 2013
Posty: 93
Lokalizacja: Puławy
Pomógł: 0

Czy ten kod Ci działa? Z tego co ja widzę zapalasz diody stanem niskim czyli kierunek pinu powinien być wejściowy. Od Vcc do pinu.
No i oczywiście da się lepiej jeśli do migania diodą użyjesz Timera zamiast delay_ms.



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lut 2014
Posty: 101
Pomógł: 4

Jak dla mnie za dużo makr.

Starczy:

#define LED2 (1<<PC0)

a potem już tylko pisz w linijkach kodu:

PORTC |= LED2; //zapal LED

PORTC &=~ LED2 //zgaś led

Ale to już kwestia przyzwyczajenia.

Ja na samym początku miałem problem z czytaniem BB ,bo gubiłem się w makrach.

Dobrze jest ich używać ,ale czasem za dużo wprowadza zamieszanie ,zwłaszcza jak jedno makro odnosi się do drugiego.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:30 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

Chodzi Ci o to żeby nie pisać LED_OFF LED_ON ? ALe to chyba lepiej bo początkujący zawsze wie o co chodzi...

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:40 
Offline
Użytkownik

Dołączył(a): 25 sty 2014
Posty: 185
Lokalizacja: Działoszyn
Zbananowany użytkownik

Pomógł: 8

RadekB86 napisał(a):
Chodzi Ci o to żeby nie pisać LED_OFF LED_ON ? ALe to chyba lepiej bo początkujący zawsze wie o co chodzi...

najpierw dobrze jest sie nauczyc składni , a pozniej mozna stosowac "ułatwienia"

bo co ci da takie makro LED_ON jak sie go nauczysz na "pałe" ale z biegiem czasu zapomnisz z przyzwaczyajenia o co chodziło w nim



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:42 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lut 2014
Posty: 101
Pomógł: 4

Zależy jak jest dla ciebie czytelniej, ja wolę swój sposób.

Dam przykład ,załóżmy że masz 8 diod podłączone do portu i chcesz sterować każdą z osobna

To będzie ,ża 16 makr od LED1 do LED7 z dopiskiem ON , OFF.

A tak bez zastanowienia:

PORTC |= LED1 //załącz led 1

PORTC |= LED2 //załącz led 2

...itd.


Makra są dobre ,ale czasem można się w nich zagubić.

Ja np. lubie też ustawiać rejestr kierunku DDR binarnie

DDRC=0b11111111 //cały port C jako wyjście

lub

DDRC=0b11111100 //PC0 i PC1 wejścia ,reszta wyjście

,ale tak jak mówię to są moje przyzwyczajenia, patrząc na kod od razu widzę co sie dzieje.

Musisz wypracować swój styl i to jak ci wygodnie.

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:49 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

Kurcze ,fajnie w C można robić jak się nam podoba coraz więcej zalet dostrzegam zresztą to napisane jest na stronie 57 ;)
Ap ropo binarnie ,też tak lubię bo od razu wiem jaki bit na jakim pinie

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:55 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lut 2014
Posty: 101
Pomógł: 4

Właśnie o to mi chodzi musisz wypracować swój własny styl.

Wcześniej już programowałeś w jakimś języku?

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 21:57 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

Tak Bascom ale tego raczej nie można było by nazwać programowaniem....bo doszedłem tylko do obsługi klawisza i się zniechęciłem kursem który mi zaoferowano...koleś go przymnie poprawiał np (drganie styków dodawał )mimo że dałem 2 stówki za zestaw z kursem(miałem nadzieję że wszystko już gotowe) :(

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 29 mar 2014, o 23:24 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 22 lut 2014
Posty: 101
Pomógł: 4

A no nie przesadzaj ,Bascom nie jest aż taki zły ,ja przez 5 lat w nim robiłem.

Gdyby nie BB i blog Mirka ,pewnie nigdy nie przeszedłbym na C. Wiele razy się zniechęcałem, ale to dlatego że kiedyś nie były aż tak dostępne materiały na temat C (mam na mysli blog ,BB i to forum).

_________________
sig off ;(



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2014, o 14:05 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

No dobrze to teraz chcę iść dalej chcę właśnie jak kolega wcześniej pisał każdą LEDą sterować oddzielnie czyli najpierw pierwszą jedną sekundęm, druga 2 sekundy itd itd...
Ale mam prośbę żeby podpowiedzi były bardziej w stylu :strona "xx" blue booka niż od razu gotowe kody bo tak chyba człowiek jednak się szybciej uczy jak ma "wędkę" niż jak ma od razu "rybę" ;)

A więc załóżmy że zaczynam od tego powyższego kodu, od czego zacząć ?

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2014, o 17:00 
Offline
Użytkownik

Dołączył(a): 22 gru 2012
Posty: 256
Lokalizacja: Rumia
Pomógł: 22

Przez sterowanie rozumiesz zapalenie diody na jedną sekundę, drugiej na dwie, itd?
Jeśli tak, to rzuć okiem na strony 304-306 w bluebooku :) Dla podpowiedzi dodam że chodzi o flagi :)

_________________
http://www.marcingibas.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2014, o 17:52 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

strony 304-306 aż tak daleko ? Ale tam jest coś o I2C No chyba że ma mi to do tego się przydać :? Przeczytać raz jeszcze nie zaszkodzi

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2014, o 18:15 
Offline
Użytkownik

Dołączył(a): 22 gru 2012
Posty: 256
Lokalizacja: Rumia
Pomógł: 22

Jest też bardzo dokładnie opisany przykład wykorzystania timera do zliczania czasu, co można wykorzystać do zapalania diody na określony czas :)

_________________
http://www.marcingibas.pl



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
PostNapisane: 30 mar 2014, o 18:31 
Offline
Użytkownik
Avatar użytkownika

Dołączył(a): 04 paź 2013
Posty: 501
Lokalizacja: Siedlce
Pomógł: 9

ALe najpierw to chyba muszę jeszcze raz o timerach przeczytać bo to zapewne one są najważniejsze w tym wszystkim?

_________________
Ucz się ucz ,bo po to tutaj jesteś...



Góra
 Zobacz profil  
cytowanie selektywne  Cytuj  
Wyświetl posty nie starsze niż:  Sortuj wg  
Utwórz nowy wątek Odpowiedz w wątku  [ Posty: 15 ] 

Strefa czasowa: UTC + 1


Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 2 gości


Nie możesz rozpoczynać nowych wątków
Nie możesz odpowiadać w wątkach
Nie możesz edytować swoich postów
Nie możesz usuwać swoich postów
Nie możesz dodawać załączników

Szukaj:
Skocz do:  
Sitemap
Technologię dostarcza phpBB® Forum Software © phpBB Group phpBB3.PL
phpBB SEO