Egentligen skulle man skickat en faktura till elfa & kräva dom på 8timmars ersättning för att dom säljer söndrigt skit
Börja med AVR, men i vilken ende?.
- Greensilver
- Inlägg: 1305
- Blev medlem: 21 januari 2005, 21:24:57
- Ort: Sverige
- Kontakt:
Har inte läst hela tråden men AT2313 (föregångaren till Tiny2313) har ingen intern oscillator. Om inte Tiny2313 har det heller så kanske felet var att du inte hade någon kristall och avkopplingskondingar? Det förklarar isåfall varför det fungerade på en gång med Tiny15 (som ju har inbyggd oscillator).
Nu har jag stött på ett litet konstigt problem
I mitt lilla program som jag håller på å snickra på, så anropar jag 3st subrutiner från main, & när alla 3 är slutförda så lopas det om igen.
Alla 3 subrutiner har i sig ett ett X antal under-subrutiner, & när den ena subrutinen är klar så ska den hoppa tillbaka till mani för att i sin tur hoppa på den andra subrutinen av 3 som finns i main.
Men problemet är att oavsätt vilken av dom 3 subrutinerna jag anropar som finns i main, så slutför dom sitt arbete, men dom hoppar aldrig tillbaka till main utan bara loopar sig själva.
Där emot om jag skriver RJMP till den så kallade subrutinen & RJMP när subrutinen är klar & pekar på main, då fungerar allt som det ska.
Så frågan är om det finns några konstiga regler för att få använda RCALL, typ att man bara får ha ett vist antal under-subrutiner i en subrutin, eller nått?
Och nej, jag har inte glömt någon RET efter varje subrutin.
I mitt lilla program som jag håller på å snickra på, så anropar jag 3st subrutiner från main, & när alla 3 är slutförda så lopas det om igen.
Alla 3 subrutiner har i sig ett ett X antal under-subrutiner, & när den ena subrutinen är klar så ska den hoppa tillbaka till mani för att i sin tur hoppa på den andra subrutinen av 3 som finns i main.
Men problemet är att oavsätt vilken av dom 3 subrutinerna jag anropar som finns i main, så slutför dom sitt arbete, men dom hoppar aldrig tillbaka till main utan bara loopar sig själva.
Där emot om jag skriver RJMP till den så kallade subrutinen & RJMP när subrutinen är klar & pekar på main, då fungerar allt som det ska.
Så frågan är om det finns några konstiga regler för att få använda RCALL, typ att man bara får ha ett vist antal under-subrutiner i en subrutin, eller nått?
Och nej, jag har inte glömt någon RET efter varje subrutin.
-
thepirateboy
- EF Sponsor
- Inlägg: 2109
- Blev medlem: 27 augusti 2005, 20:57:58
- Ort: Borlänge
från databladet till Atiny15
Den kan alltså bara lagra 3 adresser vart du var innan subrutinen laddades.
Kod: Markera allt
The stack is a 3-level-deep Hardware Stack dedicated for subroutines and interupts.
- Greensilver
- Inlägg: 1305
- Blev medlem: 21 januari 2005, 21:24:57
- Ort: Sverige
- Kontakt:
Jag skulle nog rekommendera dig att börja med Mega32. Började själv med Tiny men det är inte pedagogiskt riktigt eftersom de inte stöder alla funktioner och inte har hårdvarustöd för allt. Det gör att man blir väldigt handikappad. Börja med flaggskeppet som har "allt" och när du behärskar det hela börjar du byta ner dig i hårdvara. Så hade jag gjort om jag börjat från början igen. 
thepirateboy Stackpekare var det ja. Och jag kom också fram till samma som DragonOrb, att man bara kan ha 3st undersubrutiner eftersom ATiny15 inte har något ram minne.
Greensilver Jepp, jag ska, men nu har jag i alla fall lyckats programera den lilla söta 8tassaren till att fada alla rengbågens färger på en RGB-diod med enbart mjukvaruskapad PWM
Tihi detta var skitkul ju, så nu ska krossa & använda mina gammla klumpiga & slöa HC11or som kattsand
Greensilver Jepp, jag ska, men nu har jag i alla fall lyckats programera den lilla söta 8tassaren till att fada alla rengbågens färger på en RGB-diod med enbart mjukvaruskapad PWM
Tihi detta var skitkul ju, så nu ska krossa & använda mina gammla klumpiga & slöa HC11or som kattsand
Ett litet monster med 8 ben.
Annars är Mega48/88/168 ganska kompletta och väldigt prisvärda. Tiny2313 är också fin. Konstigt att du inte fick den att fungera bara. Den programmeras nämligen på samma sätt som alla(?) andra AVR:er.
Annars är Mega48/88/168 ganska kompletta och väldigt prisvärda. Tiny2313 är också fin. Konstigt att du inte fick den att fungera bara. Den programmeras nämligen på samma sätt som alla(?) andra AVR:er.
Jodå kan jag väll
Programmet är inte optimerat & går förbättra mycket mer, för nu körs lysdioderna som max 33% av ljusstyrkan. Eftersom när den ena lysdioden får ut sina 256pulser så står dom andra 2 & inte får någonting. Men men det ska nog gå att slå ihop alla 3 utgångarna så att dom kan jobba mer eller mindre samtidigt. Det dumma är ju att det inte finns nått ram i Tiny15 så man har ju lite svårt att mellanlagra tillfälliga värden för alla räknare
http://goto.glocalnet.net/mfager4/AVR_RGB.asm
Programmet är inte optimerat & går förbättra mycket mer, för nu körs lysdioderna som max 33% av ljusstyrkan. Eftersom när den ena lysdioden får ut sina 256pulser så står dom andra 2 & inte får någonting. Men men det ska nog gå att slå ihop alla 3 utgångarna så att dom kan jobba mer eller mindre samtidigt. Det dumma är ju att det inte finns nått ram i Tiny15 så man har ju lite svårt att mellanlagra tillfälliga värden för alla räknare
http://goto.glocalnet.net/mfager4/AVR_RGB.asm
