C programozás - miért jó?

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Avatar
GPeti
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2011. március 3. csütörtök, 7:00

C programozás - miért jó?

Hozzászólás Szerző: GPeti »

Lehet nem a legalkalmasabb helyre írok.
Szóval az én programozási ismeretem kimerül a BASCOM és egy másik basic , a PIC-hez írt Proton fordítóval.
Állítólag ezekkel nem sokra megyek nem hobbi hanem munka szempontjából.
Állítólag a C nyelv a menő, csak azt nem tudom miért.
PLC-t is jó lenne programozni megtanulni.
Avatar
GPeti
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2011. március 3. csütörtök, 7:00

Hozzászólás Szerző: GPeti »

Szóval Robertnek köszönhetem hogy tudok bascomul.
De nehéz olyan oldalt találni ahol leírják hogy kell elindulni.
Pl. PLC, Propeller ha már szó volt róla.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

Igen. Csak sem a PLC, sem a C nem ennek az oldalnak a témája:)

Hogy miért:
- PLC - programozott logika - teljesem más szakterület...
- C nyelv: kezdőként csak kudarc. A processzor belét, a HW-t és a SW-t is meg kell tanulni _egyszerre_. A Bascom legalább a processzor belét leveszi a válladról. Hobbi szinten _sokkal_ gyorsabban lehet fejleszteni vele. Valamint a C nyelv _előzetes_ ismerete sem hátrány. Valamint C-hez a függvénykönyvtárakat vadászd össze, alkalmazd (SD kezelés, LCD, I2C stb). Bascom alatt minden _kész_. Ha mindenáron C, akkor az arduino az első lépés a maga korlátaival.


Az hogy tudsz Bascomul - túlzás. Ugyanúgy ahol angolul sem tud az ember. Tanulja és egyre jobban beszéli a nyelvet. Ahogy a magyar nyelvvel is vagyok. Ok, lassan már ismerem. De nyelvész nem leszek :P.


Mit értesz munka alatt?
Cégnél fejlesztesz? - akkor meg kell tanulni a C-t rutin szinten (1-3 év). És utána a mikrokontrollerre is (újabb 1 év).
C menőség oka: Ugyanaz a program _bármilyen_ processzoron fut: ix86, AVR, Hitachi HC.... Azaz elég 1x megírni és utána univerzálisan sokfele használható....
Avatar
GPeti
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2011. március 3. csütörtök, 7:00

Hozzászólás Szerző: GPeti »

Nahát ez nekem új és elképzelhetetlen hogy ugyanaz a program elmegy bármilyen procival.

Amúgy a cégnél bascom-ot használunk, mindent meg sikerült vele csinálni eddig, amit mégse az elkészült egy ATMEL+PIC párossal.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A program kódja (magasszintű) azonos. persze a HWközeli részek eltérhetnek.... :)
Avatar
GPeti
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2011. március 3. csütörtök, 7:00

Hozzászólás Szerző: GPeti »

Sikerült C ben az avr stúdióban megírnom az első led villogtató meg egy gombot beolvasó programot, sikerült de még én sem értem teljesen.

Hát szerintem aki a C-t kitalálta az egy nagy idióta, még nagyobb aki elterjesztette, azokat meg sajnálom akikre rá van kényszerítve.

Fogalmam sincs hogy lehet vele komoly programokat írni, a bascomban ha kellett csak leakasztom a szögről mondjuk a sinushyperbolikus nem tom milyen függvényt, de ennél hogy?

De lehet ha a '80-as évek "komondor64" korszaka C lett volna akkor nem így vélekednék.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Hozzászólás Szerző: SanyiSay »

Jó is ez.
Néha kiereszteni a gőzt.

Kicsit szüleimre emlékeztet a sztori.
Anno mikor C64-en megnyomtam egy gombot és egy 220-as izzó felvillant......
Egy hónapi melónk volt benne haverral. Erre azt mondták hogy ezért kár volt ennyit küzdenem ezt a villanykapcsoló is tudja.

És igazuk volt. :D
Ha csak ez a feladat, elég egy kapcsoló.
Avatar
szegoj
SzínkódFestő
Hozzászólások: 92
Csatlakozott: 2010. február 4. csütörtök, 7:00

Hozzászólás Szerző: szegoj »

GPeti írta:Sikerült C ben az avr stúdióban megírnom az első led villogtató meg egy gombot beolvasó programot, sikerült de még én sem értem teljesen.

Hát szerintem aki a C-t kitalálta az egy nagy idióta, még nagyobb aki elterjesztette, azokat meg sajnálom akikre rá van kényszerítve.

Fogalmam sincs hogy lehet vele komoly programokat írni, a bascomban ha kellett csak leakasztom a szögről mondjuk a sinushyperbolikus nem tom milyen függvényt, de ennél hogy?

De lehet ha a '80-as évek "komondor64" korszaka C lett volna akkor nem így vélekednék.
Ne haragudj, Gpeti, de butaságokat beszélsz.
A Bascom tényleg egy nagyon klassz program, és sok dolgot könnyet meg lehet írni vele. De az igazán profi dolgok C-ben íródnak.

Csak egy apró példa a C nyelv szépségére: futófény 1 sorban:
  • PORTB = (PORTB & 0x80) ? 1 : PORTB<<1;
Avatar
GPeti
Bitmanipulátor
Hozzászólások: 131
Csatlakozott: 2011. március 3. csütörtök, 7:00

Hozzászólás Szerző: GPeti »

Tényleg jó, mindenhol ezt hallom. Bár ha valaki egyszer el tudja magyarázni ezt az egy sort akkor kezdeném érteni.
C-ben nem kellett változót bevezetni.
Bascom 417 byte kellett, míg C-ben csak 95 byte(!!!) ugyanahhoz a futófényhez.

Ugyanez bascomban:

Dim A As Byte
Config Portb = Output
A = &H80
Do
Rotate A , Left , 1 : Portb = A 'futofeny egy sorban
Wait 1
Loop
End

C-ben a többi sor is:

#include <avr/io.h> // avr header file for IO ports
#include <avr/delay.h>
int main(void){
DDRB = 0xFF; // set PORTB for output
PORTB = 0xFF;
while(1){
PORTB = (PORTB & 0x80) ? 1 : PORTB<<1;
_delay_ms(1000);
}
return 1;
}
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Hozzászólás Szerző: Robert »

A Bascom az alapinicializálásokat is belerakja a kódba. C esetén ezt Neked kell megtenni! (kódméret)
Avatar
szegoj
SzínkódFestő
Hozzászólások: 92
Csatlakozott: 2010. február 4. csütörtök, 7:00

Hozzászólás Szerző: szegoj »

GPeti írta:Tényleg jó, mindenhol ezt hallom. Bár ha valaki egyszer el tudja magyarázni ezt az egy sort akkor kezdeném érteni.
C-ben nem kellett változót bevezetni.
Bascom 417 byte kellett, míg C-ben csak 95 byte(!!!) ugyanahhoz a futófényhez.

Ugyanez bascomban:

Dim A As Byte
Config Portb = Output
A = &H80
Do
Rotate A , Left , 1 : Portb = A 'futofeny egy sorban
Wait 1
Loop
End

C-ben a többi sor is:

#include <avr/io.h> // avr header file for IO ports
#include <avr/delay.h>
int main(void){
DDRB = 0xFF; // set PORTB for output
PORTB = 0xFF;
while(1){
PORTB = (PORTB & 0x80) ? 1 : PORTB<<1;
_delay_ms(1000);
}
return 1;
}
A kérdéses sor tulajdonképp egy if then else utasítást valósít meg.
Ha PORTB legnagyobb helyi értékű bitje 1, akkor a PORTB-be 1-et ír be, egyébként a PORTB tartalmát 1 bittel lépeti balra.

(A végtelen ciklus akkor működik jól, ha elötte PORTB-be 1-et másolunk FF helyett, így egy LED világít egyszerre, és a fénypont jobbról balra mozog)
Avatar
willmenn
Biztosítékgyilkos
Hozzászólások: 61
Csatlakozott: 2012. július 14. szombat, 6:00

Re: C programozás - miért jó?

Hozzászólás Szerző: willmenn »

Most én is annak a dilemmának tettem ki magam! Érdemes-e meg tanulni a c-t? Vagy az Arduinot? Igaz Arduino panelem nincs, valamire való program általában c-be található. Én mondjuk jobba szeretem a BASCOM-ot, mert felhasználó barát, és jobban, logikusabban átlátható, és otthonosabban is mozgok benne, a hiányosságaim ellenére is.! szvsz.
Ha váltani szeretnék, szerezzek egy Arduino xxx-et az alapok megtanulásához, és utána nyergeljek át a c-re, vagy szerintetek melyik az egyszerűbb megoldás? Letöltöttem és elindítottam az arduino-1.0.3 programot, de hardver nélkül, szerintem enélkül minden próbálkozás kudarc.
Cáfoljon meg valaki hogy nincs igazam, és én minden megoldásra nyitott vagyok!
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: C programozás - miért jó?

Hozzászólás Szerző: Robert »

Windows vs Linux?
Pic vs AVR?


Na jó. Ami az én meglátásom:
1. Kezdőnek, alapokhoz, gyors eredményhez: Arduino
2. középhaladónak, eredményhez: Bascom
3, Hordozható kód, sokfeée használható tudás, ám sok szívás, és tanulás után van eredmény: C

C esetén a chip belsejét, a nyelvet és a HW környezetet is tanulni kell. Bascom és Arduino eldugja előled.
Kezdőként nem javaslom, a nyelv - elsőre megrettentő - bonyolultsága, komplexitása miatt. Mondjuk előny az ingyenessége és kváziszabvány léte.


Nálam a fő szempont:
- mennyi időm van
- mikorra kell a projekt
- mit akarok hosszútávon vele

Legfontosabb: Kapok e segítséget, ha elakadok, és tudok e önálló munkát végezni vele?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: C programozás - miért jó?

Hozzászólás Szerző: Robert »

Tipp még:
Arduino HW és Arduino nyelv: az alapokat, logikáját a nyelvnek meglátod.
A HW előnye, hogy minden nyelven éleszthető, macerálható...

A Bascomnál én azt a hiányt látom, hogy kis cég fejleszti. És amit teljesen nem értek: Miért nem marketingezik jobban?
OK, itthon van 1-2 cég/oldal, aki ezt viszi. de meglesem az Arduino-t: a kritikus tömeg viszi előre. A C-t is.
A Bascomnál ez nincsen még eléggé meg. :(
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: C programozás - miért jó?

Hozzászólás Szerző: csabeszq »

A C hordozható nyelv. Arduino alá simán fordíthatsz Windows, Mac és Linux alól.
Ha pedig másik MCU típusra akarsz váltani, az is minimális erőfeszítéssel megoldható. Akkor is, ha AVR-ről ARM-ra váltasz.

A Bascom, ha jól tudom, például csak Windows alól megy.

A nyílt forrású projektek hatalmas előnye, hogy emberek tízezrei szórakoznak vele és az Arduino pontosan ilyen.
Róbert pl. beküldte a magyar fordítást nekik és azóta magyarul is tud.

A C egyébként a hordozható assembly, annyira közel áll hozzá. Max. 10% a sebességbeli különbség az assembly javára, amit bőven ellensúlyoz a hordozhatóság.

Olyan nyelven programozol, ahogy jólesik, de a C-nek rengeteg értékes tulajdonsága van.
Válasz küldése