Visa fullständig version : programerare
maskor och flaggor vad är det?
vi ska använda det i något interupt.... det är en atmel 162 som programeras
ja det är ett skolarbete men vi har knappt fått någon litteratur att läsa förutom några sketna datablad som inte är så pedagogiska.
Jag kodade mega16 förra terminen. Databladen till microprocessorerna är ganska bra. Handlar bara om att förstå dom..
Flaggor används för att t.ex. enabla en timer, egenskaper för den, startvärde, värde när den ska startas om.
Maskor har jag ingen anning om, aldrig hört ordet.. Har du ngt sammanhang?
PS. vad ska ni skriva?
ja den hörde ihop maskorna eller maskerna........ och flaggorna
i interupt
MaskAr och flaggor är något du använder när du lagrar flera flaggor i ett och samma heltal. T ex: Bit 1 har en betydelse, 2 en annan osv. Då använder du en AND-mask för att maska av respektive bit för att avgöra om den är satt eller inte. Vi hittar på att en fil har två flaggor, read-only och executable. Vi hämtar ut bitmappen med filens status och får:
(Vi nöjer oss med 8 bitar för enkelhetens skull)
01100010
Bit 0: read only om satt
Bit 1: executable om satt
... (den kanske har andra flaggor också, vi skiter i dem nu)
För att avgöra om bit 1 är satt så kör vi bit-vis AND på den:
01100010 & 00000010 => 00000010 vilket är > 0; alltså är biten satt
För att avgöra om bit 0 är satt så kör vi bit-vis AND på samma vis:
01100010 & 00000001 => 00000000 vilket är 0; alltså är biten inte satt
Flaggan är just specifikationen eller definitionen som säger att: Bit nummer 3 avgör om si eller så gäller.
Masken är just det man AND:ar med för att avgöra flaggans värde.
MaskAr och flaggor är något du använder när du lagrar flera flaggor i ett och samma heltal. T ex: Bit 1 har en betydelse, 2 en annan osv. Då använder du en AND-mask för att maska av respektive bit för att avgöra om den är satt eller inte. Vi hittar på att en fil har två flaggor, read-only och executable. Vi hämtar ut bitmappen med filens status och får:
(Vi nöjer oss med 8 bitar för enkelhetens skull)
01100010
Bit 0: read only om satt
Bit 1: executable om satt
... (den kanske har andra flaggor också, vi skiter i dem nu)
För att avgöra om bit 1 är satt så kör vi bit-vis AND på den:
01100010 & 00000010 => 00000010 vilket är > 0; alltså är biten satt
För att avgöra om bit 0 är satt så kör vi bit-vis AND på samma vis:
01100010 & 00000001 => 00000000 vilket är 0; alltså är biten inte satt
Flaggan är just specifikationen eller definitionen som säger att: Bit nummer 3 avgör om si eller så gäller.
Masken är just det man AND:ar med för att avgöra flaggans värde.
Jaha.. Nu fattar jag vad han menade.
Det är lite pill innan man kommer igång med alla flaggor som ska ställas..
Ett tips kan vara att använda en wizard för att komma igång (den hjälper dig att confa alla init värden). Självklart kommer du måsta pilla med det själv..
MaskAr och flaggor är något du använder när du lagrar flera flaggor i ett och samma heltal. T ex: Bit 1 har en betydelse, 2 en annan osv. Då använder du en AND-mask för att maska av respektive bit för att avgöra om den är satt eller inte. Vi hittar på att en fil har två flaggor, read-only och executable. Vi hämtar ut bitmappen med filens status och får:
(Vi nöjer oss med 8 bitar för enkelhetens skull)
01100010
Bit 0: read only om satt
Bit 1: executable om satt
... (den kanske har andra flaggor också, vi skiter i dem nu)
För att avgöra om bit 1 är satt så kör vi bit-vis AND på den:
01100010 & 00000010 => 00000010 vilket är > 0; alltså är biten satt
För att avgöra om bit 0 är satt så kör vi bit-vis AND på samma vis:
01100010 & 00000001 => 00000000 vilket är 0; alltså är biten inte satt
Flaggan är just specifikationen eller definitionen som säger att: Bit nummer 3 avgör om si eller så gäller.
Masken är just det man AND:ar med för att avgöra flaggans värde.
måste man deklarera maskar och flaggor?
måste man deklarera maskar och flaggor?
Jag pratar inte om ett specifikt programmeringsspråk nu utan om bit-operationer. Nog har du en lärobok? :)
nej jag har ingen bok. ....jag har min bok om c-programmering men det känns som om det här går mycket djupare och behandlar andra saker.....
det är det kassaste med den här kursen .....att vi inte fått någon bok att falla tillbaka på
nej jag har ingen bok. ....jag har min bok om c-programmering men det känns som om det här går mycket djupare och behandlar andra saker.....
det är det kassaste med den här kursen .....att vi inte fått någon bok att falla tillbaka på
Ok, men både bitmappen och masken är heltal. Antingen char, short, int eller long.
Ok..... du ´har ju läst om det här.... du har ingen bok du kan rekommendera som man inte behöver vara raketforskare för att begripa?
blir väl lite svårt med bok då du behöver litteratur för just den cpun hmm
tänke mer om man kunde låna något på biblioteket som behandlar flaggo maskar interupt och sånt i största allmänhet
Ok..... du ´har ju läst om det här.... du har ingen bok du kan rekommendera som man inte behöver vara raketforskare för att begripa?
Det är verkligen inget mer än just bit-operatorerna. 1 + 1 är 2; 001 & 000 = 0. Etc.
litteratur för att programmera diverse uråldriga cpus brukar vara något specifikt för just den kursen, typ att föreläsaren gjrot en ful bok om FLEX-processorn eller liknande som man då får köpa.
tänke mer om man kunde låna något på biblioteket som behandlar flaggo maskar interupt och sånt i största allmänhet
Stanna upp och läs vad vi skriver i tråden. Du springer runt runt och frågar om alla ord du ser nu utan att tänka. Det här är inte raketvetenskap utan mycket enkelt matematik. En bitmap är samling bittar (eller flaggor), en mask använder man för att "maska av" - alltså läsa av en av flaggorna.
Vi använde denna bok:
Barnett, Cox & O’Cull: Embedded C Programming and the Atmel AVR, Thomson 2003.
Den går igenom grunderna. men ALLT står i databladet!
Liten Men Fet
2006-10-08, 19:52
Köp eller låna en bok i micro-programmering så får du nog svar på dina frågor.
The_RobRoy
2006-10-08, 20:32
Denhär boken har vi
http://www.adlibris.com/se/product.aspx?isbn=914446651X
Ahh känner igen den underbara paniken av att inte fatta någonting, sen sätter man sig ner med det, kliar sig i huvudet några timmar och svär över varför ingen kan förklara lite enkelt för en, sen så lossnar det :)
Stanna upp och läs vad vi skriver i tråden. Du springer runt runt och frågar om alla ord du ser nu utan att tänka. Det här är inte raketvetenskap utan mycket enkelt matematik. En bitmap är samling bittar (eller flaggor), en mask använder man för att "maska av" - alltså läsa av en av flaggorna.
men jag har lite smått panik när jag inte förstår. än om du förklarar en sak för mig så känns det som om jag skulle vilja läsa på kapitlet innan för att förstå grunderna bättre ....... typ från första början hur allt är uppbyggt och så
Denhär boken har vi
http://www.adlibris.com/se/product.aspx?isbn=914446651X
Ahh känner igen den underbara paniken av att inte fatta någonting, sen sätter man sig ner med det, kliar sig i huvudet några timmar och svär över varför ingen kan förklara lite enkelt för en, sen så lossnar det :)
ja förutom att det inte lossnar
Dumleman
2006-10-08, 20:41
Några länkar från wikipedia!
http://sv.wikipedia.org/wiki/Bin%C3%A4ra_tal
http://sv.wikipedia.org/wiki/Boolesk_algebra
http://sv.wikipedia.org/wiki/Bitmask
The_RobRoy
2006-10-08, 21:05
ja förutom att det inte lossnar
Du måste ju sitta tillsammans med några klasskompisar.. ..själv är det ju hopplöst (tråkigt)
Den metoden är bra om man t ex vill hålla koll på användarrättigheter i ett program. Man sparar administratörens alla rättigheter i ett heltal bara.
Varje "rättighet" ges värdet 1 eller 2, 4, 8, 16 osv. Då slipper man ha ett fält/variabel per rättighet, och kan klumpa ihop dem.
men jag har lite smått panik när jag inte förstår. än om du förklarar en sak för mig så känns det som om jag skulle vilja läsa på kapitlet innan för att förstå grunderna bättre ....... typ från första början hur allt är uppbyggt och så
Ett grundläggande problem är, tror jag, att du och jag angriper kunskap olika. Jag söker sambad för att försöka lista ut funktionen, du verkar mer försöka plugga in begrepp och ord utan att bry dig om vad de betyder. Iallfall till en början och... tyvärr är det - för din del då - så att det helt enkelt inte fungerar med den approach:en till programmering. Det går liksom inte att plugga in precis alla produkter av alla multiplikationer - det är enklare att satsa på att förstå metoden ;)
Problemlösningsaspekten hos programmering är identisk med den hos matematik. Först måste man ta reda på vad som söks och sen gå baklänges därifrån genom att stegvis uppfylla alla ingående krav. Vartefter man inser att något inte finns i ingående fakta så börjar man en ny analys av ingående krav, gå baklänges osv fram till dess att man nått hela vägen fram till allt indata man fått. Det man har när man nått dit är en lista av saker som behöver programmeras/beräknas samt i vilken ordning eftersom en sak kräver resultatet av en annan, etc. Det lönar sig att angripa problemet så här och det går inte att misslyckas!
I den här tråden blir det t ex tydligt att ditt problem faktiskt _inte_ är förståelsen för maskor/maskning, bitmappar, flaggor och interrupts utan snarare vad det är du ska göra med dem. Det blir tydligt när förklaringarna för respektive begrepp helt enkelt inte fastnar. Det beror inte på att du skulle vara dum eller så utan för att krokarna saknas. Först måste du ta reda på varför du behöver just den kunskapen (krokarna).
Det blir svårt att lära ut saker med text när det gäller saker som i sig själva är triviala men som är ganska långt ifrån vad man normalt resonerar kring. Det behövs interaktivitet så att någon kan åskådliggöra saker, deras relationer, vad som ger vad osv. För det här ämnet är verkligen busenkelt, det är på addition- och subtraktionsnivå jämfört med matte. Det bara verkar klurigt. Det är en illusion.
The_RobRoy
2006-10-09, 10:39
Wow bra skrivet jwzrd :thumbup:
Jwzrd: Intressant resonemang kring programmering. En fråga bara: Är du helt självlärd eller har du någon form av utbildning i programmering? Skulle vara intressant om du ser någon skillnad i problemlösning mellan dig och t ex en som har läst 200 poäng i algoritmer. :)
Själv tycker jag mest att mina programmeringskurser har gett mig grundläggande syntax begrepp. Även om vi lärde oss vissa specifika algoritmer för vanliga problem så tycker jag mest att erfarenhet och praktiserande har utvecklat min problemlösning.
Jwzrd: Intressant resonemang kring programmering. En fråga bara: Är du helt självlärd eller har du någon form av utbildning i programmering? Skulle vara intressant om du ser någon skillnad i problemlösning mellan dig och t ex en som har läst 200 poäng i algoritmer. :)
Själv tycker jag mest att mina programmeringskurser har gett mig grundläggande syntax begrepp. Även om vi lärde oss vissa specifika algoritmer för vanliga problem så tycker jag mest att erfarenhet och praktiserande har utvecklat min problemlösning.
Jag har hjälpt isato med C-programmering i PM, det är enbart därför jag har något att säga om hur han tacklar problem. Det och att jag själv helt enkelt är rätt dålig på att råplugga in rena fakta, mitt sätt att lära sig fungerar inte så helt enkelt. Mitt sätt råkar lämpa sig för programmering och matematik men inte för att lära mig t ex långa faktaspäckade texter där faktaenheternas inbördes relationer är svaga eller obefintliga.
Hur någon tacklar programmering har inget med kurser personen läst att göra utan har med vad personen tycker är spännande att göra. Man blir bra på det man gör.
Jag är helt självlärd i så måtto att jag lärt mig innehållet i de två kurser jag gått, innan kursen. Jag läste C/C++-programmering i 2:an i gymnasiet och assembler i 3:an. Att programmera lärde jag mig samtidigt med första gången jag använde datorer i ettan i gymnasiet (och i viss mån i slutet av 9:an). Jag fipplade med QBasic, lånade Pascal- och C-böcker och löste uppgifterna och testade sakerna i böckerna i Qbasic. Sen skrev jag C-kod i edit.com hemma och kompilerade i skolan eftersom mitt härke till 8086:a inte hade någon C-kompilator. Assemblern lärde jag mig av papper som en kompis skrev ut från Internet som hette Alberts Assemblerschool :) Efter det blev det Java i slutet av 3:an vilket var en ren barnlek att gå över till från C++.
100101011000011100111 11010001100001111010011000011110010 110101111011111100100
xD
Jwzrd har ju rätt, intresse är väl den absolut viktigaste saken för att kunna bli en bra programmerare. Det finns så otaliga många verktyg och sätt att lösa problem så utan nyfikenhet så går det ofta inte så bra i längden. Titta vad du har för verktyg, undersök vad du vill göra och varför och prova på och lek.
Jwzrd har ju rätt, intresse är väl den absolut viktigaste saken för att kunna bli en bra programmerare. Det finns så otaliga många verktyg och sätt att lösa problem så utan nyfikenhet så går det ofta inte så bra i längden. Titta vad du har för verktyg, undersök vad du vill göra och varför och prova på och lek.
Det håller jag definitivt med om. De problem jag kunde lösa i skolan mha programmering löste jag tack vare det jag lärt mig på fritiden. Den metod som lärt mig mest är att koda, kompilera, försöka hitta vad som är fel och sedan börja om. Det är en långsam process som gör mig lite bättre för varje gång. :D
Det håller jag definitivt med om. De problem jag kunde lösa i skolan mha programmering löste jag tack vare det jag lärt mig på fritiden. Den metod som lärt mig mest är att koda, kompilera, försöka hitta vad som är fel och sedan börja om. Det är en långsam process som gör mig lite bättre för varje gång. :D
Trial and error is teh shit. Så lärde jag mig Java också. Att sitta och läsa kursböcker ger inte mycket.
Jag har pluggat lite programmering och matte på universitetet, men gick aldrig klart linjen. Teori är bra till en viss gräns, men jag anser att programmering är mycket en mognadsfråga. Det tar lång tid att bli en bra programmerare, även om man har en grym talang för det. Man behöver helt enkelt ha råkat ut för ett antal olika problem för att lära sig hur man känner igen en liknande situation och sedan hantera den bäst.
Sedan så tror jag att det krävs en viss sorts "tänk", analytiskt och logiskt, samtidigt som man bör vara kreativ och ha fantasi. Att kunna/våga tänka "utanför lådan" och testa knäppa lösningar.
Neal Stephenson uttryckte det bäst:
"Nothing is more disagreeable to the hacker than duplication of effort." :bow:
Jwzrd har ju rätt, intresse är väl den absolut viktigaste saken för att kunna bli en bra programmerare. Det finns så otaliga många verktyg och sätt att lösa problem så utan nyfikenhet så går det ofta inte så bra i längden. Titta vad du har för verktyg, undersök vad du vill göra och varför och prova på och lek.
Jag kan absolut hålla med, även om du läst en del programmering, som jag nu gjort, så betyder det inte att du är en grym programmerare om du inte håller kunskapen vid liv, vilket jag inte gör :D Det stämmer iofs generellt på så mycket annat, allt måste underhållas.
Trial and error is teh shit. Så lärde jag mig Java också. Att sitta och läsa kursböcker ger inte mycket.
Kan ge mer än man tror, speciellt t ex om man proggar java och inte kan använda sig av APIn (äääääjpajajj som en bekant kallar det), om man nu inte älskar att sitta i flera timmar med någon skitgrej som man kunde ha fattat fort om man läst lite om den grejen i en viss bok. Sen att praktik + teori går hand i hand, visst, går inte bli en bra programmerare av att läsa en bok. Skadar ju inte.
vBulletin® v3.8.8, Copyright ©2000-2025, Jelsoft Enterprises Ltd.