Är det inte dags för något nytt? Programmeringsspråk AVR

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
Användarvisningsbild
Gildebrand
Inlägg: 1108
Blev medlem: 8 maj 2009, 21:40:49
Ort: Falun

Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av Gildebrand »

Jag har tyvärr inte kommit så långt vad gäller inlärning av AVR-programmering. Jag kollar på kod, och det ser bara ut som rena djungeln. Jag kan ände med några språk på hyffsad nivå, C#, ASP (och .net såklart), PHP, VB med flera. Men jag måste säga att jag tycker att just AVR-programmering känns SÅÅÅÅ gammalt. Både i Språket, C, och det sätt man anropar funktioner i AVRen. (Vet inte om jag förstår det där själv heller)

Tänk vad underbart det vore om någon skulle släppa ett AVR-framework till Visual Studio, så man kan programmera i sitt favoritspråk. C#, C++, VB, eller kanske till och med F#. AVRStudio är inget program jag finner särskilt imponerande. Man får ingen särskild hjälp under programmeringen av programmet.

Varför finns inte det här? Är det bara jag som har tänkt den fantastiska idén?
Användarvisningsbild
psynoise
EF Sponsor
Inlägg: 7226
Blev medlem: 26 juni 2003, 19:23:36
Ort: Landvetter

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av psynoise »

Tror svaret är att dom flesta som programmerar mikrokontrollers är utbildade och inte behöver några program med en massa lull lull som finns i Windows-världen. Är själv av typen som sitter med vi och gcc.

Att du tycker att det är krångligt kan bero på att du har fel arbetsmetod. Men att förstå på sig en annans kod utan bra dokumentation kan vara väldigt svårt.
Användarvisningsbild
Gildebrand
Inlägg: 1108
Blev medlem: 8 maj 2009, 21:40:49
Ort: Falun

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av Gildebrand »

Så du tror inte att det vore enklare med ett någorlunda modernt programmeringsspråk, som inte konstruerades 1973?
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av sodjan »

> Jag kollar på kod, och det ser bara ut som rena djungeln.

Min gissning är att det inte beror på koden i sig (eller de verktyg som
användes för att skriva den) utan på att du inte riktigt har snappat
det där med programmering av mikrokontrollers (*än*, så klart... :-) )...

> Så du tror inte att det vore enklare med ett någorlunda modernt programmeringsspråk, som inte konstruerades 1973?

Sannolikt inte, nej. Det hjälper inte för att förstå grunderna (vilka till stor del
är de samma som 1973). I dagens överdimensionerade system där man kan
skriva vilken skitkod som helst och ändå få det att "fungera", så kanske det
inte spelar något större roll. Förrens man trillar dit på ett större serversystem
som plötsligt går på knäna när det blir fler än 10 användare och ingen förstår varför...
Användarvisningsbild
Gildebrand
Inlägg: 1108
Blev medlem: 8 maj 2009, 21:40:49
Ort: Falun

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av Gildebrand »

Hoppas du har rätt sodjan i att jag hajar till vad gäller programmeringen :)
Mycket vad gäller själva koden känner jag ju igen, då jag programmerat en hel del i C#, typ att allting ligger under "voids".
Men jag har svårt att förstå varför så många människor "nöjer sig" med att programmera i ett så förbaskat gammalt språk. Men jag kanske bara måste lära mig.

Men en fråga jag ställer er, tror ni att ni om 10 år fortfarande vill programmera i samma gamla språk? Kommer det aldrig komma något nytt?

Sitter just nu och försöker förstå mig på en väldigt enkel kodsnutt.
void delay(){
unsigned char i,j,k;
for(i=0;i<6;i++)
for(j=0;j<255;j++)
for(k=0;k<255;k++);
}
en del av kod till en stegmotor. förstår mig inte på vad "for" betyder. Förstår inte vad i, j och k är. Men jag måste bara lära mig. Men ni får gärna förklara, vad de olika sakerna i denna enkla kodsnutt gör :)
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av sodjan »

Sluta fokusera på språket. Om man min "fattar" programmering
så spelar språket inte någon som helst roll...

10 år ? Skämtar du ? Jag har programmerat i 30 år och
använder i princip samma verktyg och språk som då. Och
det lever jag väldigt bra på.

> förstår mig inte på vad "for" betyder.

RTFM !!
Användarvisningsbild
Gildebrand
Inlägg: 1108
Blev medlem: 8 maj 2009, 21:40:49
Ort: Falun

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av Gildebrand »

Okej!

Då är det väl bara att lära sig då och sluta skylla på uråldriga språk :D
sneaky
Inlägg: 1621
Blev medlem: 22 juni 2009, 18:38:42

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av sneaky »

Förlåt men du säger att du har hyffsad kunskap i "C#, ASP (och .net såklart), PHP, VB med flera" men har aldrig stött på "for"? Hur i he__te lyckas man med det?
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av jesse »

Processorarkitekturen är ju från 60-talet så programspråket passar väl bra. Moderna programspråk brukar sällan vara optimerade för att vara minnessnåla eller tidseffektiva.

Orsaken att ingen vill programmera i språk på "högre nivåer" som t.ex. objektorienterad C++ med klasser eller ännu värre: java (!) är väl att dess datastrukturer slukar stora mängder minne ? (det är i alla fall vad jag fått för mig), och om det är något som är begränsat i AVR-världen så är det väl just ramminnet. C++ går väl bra i och för sig, men man bör nog undvika för avancerade strukturer. Sättet man bygger upp objekt på i klasser osv.. inbillar jag mig slukar mer minne och tar längre tid / kräver med kod än mer "traditionella" sätt att programmera. Jag hade annars gärna jobbat med C++ hellre än C.

Någon som är mer insatt i C++ kan ju bekräfta eller dementera det jag sagt (gissat) här.
och det sätt man anropar funktioner i AVRen.
Hur menar du? Vilket sätt? Pratar du om C nu?

Du kan ju annars kolla på "Rapid Code Generator" - Något slags objektorienterat system. Själv misstänker jag dock att den blir bökig eller omöjlig att använda om det blir för avancerat.

Men det skulle vara intressant om någon ville utveckla ett modernt språk speciellt anpassat för enkla microcontrollers... kanske kommer det en dag. Jag får ju själv erkänna att jag inte riktigt gillar C , det är alldeles för lätt att skriva oläslig kod och man kan röra ihop funktionerna i en obegriplig massa om man vill. Det skulle finnas striktare regler.
C#, ASP (och .net såklart), PHP, VB
Kan de verkligen kallas programspråk? Trodde de var begränsade saker för speciella applikationer...
Användarvisningsbild
jesse
Inlägg: 9240
Blev medlem: 10 september 2007, 12:03:55
Ort: Alingsås

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av jesse »

Men ni får gärna förklara, vad de olika sakerna i denna enkla kodsnutt gör :)
i, j och k är heltalsvariabler.läs här.
for betyder att något skall upprepas ett visst antal gånger.läs här.
Användarvisningsbild
TomasL
EF Sponsor
Inlägg: 46950
Blev medlem: 23 september 2006, 23:54:55
Ort: Borås
Kontakt:

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av TomasL »

Snälla nån, skämtar du?

"For" i C gör exakt samma sak som i BASIC, med lite knorr, dvs
for(i=0;i<6;i++)
Tilldela "i" värdet noll, kontrollera om "i" är mindre än 6, om ja inkrementera "i" starta om med att kontrollera om "i" är mindre än 6 osv. Om nej hoppa till nästa rad.

Och nej, pga av overheaden i C++ och C# lär de aldrig bli nånting man använder i den lilla uC-värden, möjligtvis på de stora ARMarna och MIPSarna.
dvs de som kan hantera ett par 10-100-tal MB med program och RAM-minne.
Inte ens BASIC pga overheaden är speciellt bra, samma gäller i vissa lägen även "gamla" C.
Användarvisningsbild
Gildebrand
Inlägg: 1108
Blev medlem: 8 maj 2009, 21:40:49
Ort: Falun

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av Gildebrand »

Ahh, for är likadant som i basic? Då är jag med.
Har bara kört C# senaste året, and i like it :)

Kan ni tipsa om några särskilt bra guider för att lära sig C för avr?
Användarvisningsbild
psynoise
EF Sponsor
Inlägg: 7226
Blev medlem: 26 juni 2003, 19:23:36
Ort: Landvetter

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av psynoise »

Finns inga bra guider eller tutorials, det ända som gäller är bok skriven av ett proffs och inte några andra amatörer, finns säkerligen någon bra bok om C-programmering i ditt lokala bibliotek.
Användarvisningsbild
Gildebrand
Inlägg: 1108
Blev medlem: 8 maj 2009, 21:40:49
Ort: Falun

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av Gildebrand »

Sökte på skolans och stadsbibliotekets katalog, men fanns bara om c++ och c#. Kan du rekommendera någon särskild bok så kanske jag får köpa den.
sodjan
EF Sponsor
Inlägg: 43249
Blev medlem: 10 maj 2005, 16:29:20
Ort: Söderköping

Re: Är det inte dags för något nytt? Programmeringsspråk AVR

Inlägg av sodjan »

Ja, att C inte är ett speciellt bra *generellt* språk är nog de flesta överens om (*).

Men så konstruerades det inte heller för att vara det, utan som ett implementeringsspråk
för att göra konstruktionen av operativsystem (läs "UNIX") lite enklare på maskiner med
begränsade resurser (PDP-11 med kanske 32 eller 64 KB RAM). Och så långt fungerar det nog
hyggligt, även om det hade varit bra om vi sluppit sådant som t.ex C's hantering av strängar
vilket har medför en del problem (men också möjligheter för virusmakarna :-) )...

Det finns bättre språk för andra speciella behov t.ex Fortran för analys/simuleringar med
stor del matematik eller COBOL vilket fortfarande är det största språket för *stora*
affärssystem.

(*)
Notera att "inte speciellt bra" inte betyder detsamma som "inte populärt".
Det finns ingen regel att det alltid hänger ihop... :-)
Skriv svar