[abc80] koppla ABC80 till PIC32:an

juhasz at abc.se juhasz at abc.se
Tis Sep 7 14:20:16 PDT 2010


tack för alla tipsen! är bortrest just nu men ska testa när jag kommer hem
efter veckan.

och som jag kommit fram till tidigare: sätter mna ipl7 så får man en
mycket snabbare rutin. men hela erfarenheten får mig att viĺja kolla på
ARM chip i stället...!

Robert

> On 08/30/2010 10:41 AM, juhasz at abc.se wrote:
>> void __ISR(_CHANGE_NOTICE_VECTOR, ipl2) ChangeNotice_Handler(void)
>> {
>>     unsigned int temp,data;
>> 	PORTE=55;
>> 	PORTE=66;
>> 	PORTE=77;
>>     // clear the mismatch condition
>>     temp = mPORTBRead();
>>
>> 	if (!(temp & 1)) //IN1
>> 	{
>>
>> 	mPORTEWrite(34); // output a " character
>> 	while (!mPORTBReadBits(BIT_0)); // wait until read op finishes
>>
>>
>> 	mPORTFToggleBits(BIT_1);
>> 	putsUART2("\n CN2/IN1: ");
>> 	putsUART2("\n\r");
>> 	}
>>
>> 	 if ((temp & 2)==0) //OUT2
>> 	{
>> 	data=mPORTERead();
>> 	mPORTFToggleBits(BIT_1);
>> 	putsUART2("\n CN3/OUT2: ");
>> 	putcUART2(data & 255);
>> 	putsUART2("\n\r");
>> 	}
>>
>>     // clear the interrupt flag
>>     mCNClearIntFlag();
>> 	mPORTEWrite(255);
>>
>>
>>
>> }
>
> Det är förmodligen värt att påpeka att du lär få *mycket* bättre kod ur
> gcc om du inte anropar subrutiner (annat än inline) från din
> interruptrutin.  Om du tar bort putsUART2() och putcUART2()-anropen så
> slipper du den enormt långa prologen.
>
> Anledningen att du behöver göra OPEN DRAIN här är naturligtvis att du
> inte stänger av drivningen till PORT E när den inte ska användas.
>
> Något i stil med det medskickade borde funka (total otestat, eftersom
> jag inte ens har hårdvaran)... sen är det en fråga om det fortfarande är
> för långsamt.  Som sagt var blir det ännu värre om man ska simulera
> minne... Z80 ger 2,5 cycler för en I/O-referens (varav internkretsar i
> ABC80 äter 0,5 cycler, plus propageringstid) medan den bara ger 1,0
> cycler för kod och 1,5 cycler för datareferenser till minnet.
>
> 	-hpa
>
>
> P.S. Microchips licenspolicy är totalt bondfångeri.  Ladda ner källkoden
> och kompilera ur tested för "lite mode" så har du en helt fungerande
> kompilator.  Vilka totalmuppar -- en av anledningarna att jag inte
> gillar Microchip.
>



More information about the ABC80 mailing list