⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mc_display.ls

📁 STM8S105 BLDC源代码
💻 LS
📖 第 1 页 / 共 3 页
字号:
1345                     ; 180 		*pStr = (u8)(Nbre1Tmp + (u8)0x30);
1347  0199 7b06          	ld	a,(OFST+0,sp)
1348  019b 1e07          	ldw	x,(OFST+1,sp)
1349  019d ab30          	add	a,#48
1350  019f f7            	ld	(x),a
1351                     ; 182 		pStr++;
1353  01a0 5c            	incw	x
1354                     ; 183 		*pStr = 0; // End of string
1356                     ; 185 }
1359  01a1 5b08          	addw	sp,#8
1360  01a3 7f            	clr	(x)
1361  01a4 81            	ret	
1400                     ; 187 void display_setpoint_blink(void)
1400                     ; 188 {
1401                     	switch	.text
1402  01a5               _display_setpoint_blink:
1404  01a5 88            	push	a
1405       00000001      OFST:	set	1
1408                     ; 191 	if (g_pUserInterface == 0) return;
1410  01a6 be05          	ldw	x,L5_g_pUserInterface
1411  01a8 2602          	jrne	L166
1415  01aa 84            	pop	a
1416  01ab 81            	ret	
1417  01ac               L166:
1418                     ; 192 	if (g_pUserInterface->bStatus == UI_LOCKED) return;
1420  01ac f6            	ld	a,(x)
1421  01ad 4a            	dec	a
1422  01ae 2602          	jrne	L366
1426  01b0 84            	pop	a
1427  01b1 81            	ret	
1428  01b2               L366:
1429                     ; 193 	if (g_pdevice == 0) return;
1431  01b2 be07          	ldw	x,L7_g_pdevice
1432  01b4 2602          	jrne	L566
1436  01b6 84            	pop	a
1437  01b7 81            	ret	
1438  01b8               L566:
1439                     ; 194 	if (g_pSelTab == 0) return;
1441  01b8 be09          	ldw	x,L11_g_pSelTab
1442  01ba 2602          	jrne	L766
1446  01bc 84            	pop	a
1447  01bd 81            	ret	
1448  01be               L766:
1449                     ; 195 	for (i=0;i<g_pSelTab->bFieldsNumber;i++)
1451  01be 0f01          	clr	(OFST+0,sp)
1453  01c0 205a          	jra	L576
1454  01c2               L176:
1455                     ; 197 		if (g_pUserInterface->bField_Focus_Selection == i)
1457  01c2 be05          	ldw	x,L5_g_pUserInterface
1458  01c4 e604          	ld	a,(4,x)
1459  01c6 1101          	cp	a,(OFST+0,sp)
1460  01c8 2650          	jrne	L107
1461                     ; 199 			if (g_pUserInterface->bField_Edit != i)
1463  01ca e605          	ld	a,(5,x)
1464  01cc 1101          	cp	a,(OFST+0,sp)
1465  01ce 274a          	jreq	L107
1466                     ; 201 				if (bBlinkState == 0)
1468  01d0 b604          	ld	a,L3_bBlinkState
1469  01d2 261c          	jrne	L507
1470                     ; 203 					bBlinkState = 1;
1472  01d4 35010004      	mov	L3_bBlinkState,#1
1473                     ; 205 					g_pdevice->mems.m8[DISPLAYLINE_ADDR]=(u8)(i+1);
1475  01d8 7b01          	ld	a,(OFST+0,sp)
1476  01da be07          	ldw	x,L7_g_pdevice
1477  01dc ee09          	ldw	x,(9,x)
1478  01de 4c            	inc	a
1479  01df e71e          	ld	(30,x),a
1480                     ; 206 					g_pdevice->mems.m8[DISPLAYPOS_ADDR]=8;
1482  01e1 be07          	ldw	x,L7_g_pdevice
1483  01e3 ee09          	ldw	x,(9,x)
1484  01e5 a608          	ld	a,#8
1485  01e7 e71f          	ld	(31,x),a
1486                     ; 207 					g_pdevice->mems.m8[DISPLAYCH_ADDR]=16;
1488  01e9 be07          	ldw	x,L7_g_pdevice
1489  01eb 48            	sll	a
1490  01ec ee09          	ldw	x,(9,x)
1491                     ; 208 					g_pdevice->ios.out8(VDEV_OUT8_DISPLAY_PRINTCH,0);
1494  01ee 2019          	jp	LC001
1495  01f0               L507:
1496                     ; 213 					bBlinkState = 0;
1498  01f0 3f04          	clr	L3_bBlinkState
1499                     ; 215 					g_pdevice->mems.m8[DISPLAYLINE_ADDR]=(u8)(i+1);
1501  01f2 7b01          	ld	a,(OFST+0,sp)
1502  01f4 be07          	ldw	x,L7_g_pdevice
1503  01f6 ee09          	ldw	x,(9,x)
1504  01f8 4c            	inc	a
1505  01f9 e71e          	ld	(30,x),a
1506                     ; 216 					g_pdevice->mems.m8[DISPLAYPOS_ADDR]=8;
1508  01fb be07          	ldw	x,L7_g_pdevice
1509  01fd ee09          	ldw	x,(9,x)
1510  01ff a608          	ld	a,#8
1511  0201 e71f          	ld	(31,x),a
1512                     ; 217 					g_pdevice->mems.m8[DISPLAYCH_ADDR]=' ';
1514  0203 be07          	ldw	x,L7_g_pdevice
1515  0205 a620          	ld	a,#32
1516  0207 ee09          	ldw	x,(9,x)
1517                     ; 218 					g_pdevice->ios.out8(VDEV_OUT8_DISPLAY_PRINTCH,0);
1520  0209               LC001:
1521  0209 e720          	ld	(32,x),a
1523  020b 4b00          	push	#0
1524  020d ae0003        	ldw	x,#3
1525  0210 89            	pushw	x
1526  0211 5f            	clrw	x
1527  0212 89            	pushw	x
1528  0213 be07          	ldw	x,L7_g_pdevice
1529  0215 ee1b          	ldw	x,(27,x)
1530  0217 fd            	call	(x)
1531  0218 5b05          	addw	sp,#5
1532  021a               L107:
1533                     ; 195 	for (i=0;i<g_pSelTab->bFieldsNumber;i++)
1535  021a 0c01          	inc	(OFST+0,sp)
1536  021c               L576:
1539  021c 92c609        	ld	a,[L11_g_pSelTab.w]
1540  021f 1101          	cp	a,(OFST+0,sp)
1541  0221 229f          	jrugt	L176
1542                     ; 224 }
1545  0223 84            	pop	a
1546  0224 81            	ret	
1687                     ; 226 void display_create(pvdev_device_t pdevice, PUserInterface_t pUserInterface)
1687                     ; 227 {
1688                     	switch	.text
1689  0225               _display_create:
1691  0225 89            	pushw	x
1692  0226 520f          	subw	sp,#15
1693       0000000f      OFST:	set	15
1696                     ; 230 	u8 selTab = pUserInterface->bSelected_Tab;
1698  0228 1e14          	ldw	x,(OFST+5,sp)
1699  022a e601          	ld	a,(1,x)
1700  022c 6b06          	ld	(OFST-9,sp),a
1701                     ; 231 	PTab_t pSelTab = &(pUserInterface->pTab[selTab]);
1703  022e 97            	ld	xl,a
1704  022f a603          	ld	a,#3
1705  0231 1614          	ldw	y,(OFST+5,sp)
1706  0233 42            	mul	x,a
1707  0234 90ee07        	ldw	y,(7,y)
1708  0237 90bf00        	ldw	c_x,y
1709  023a 72bb0000      	addw	x,c_x
1710  023e 1f0d          	ldw	(OFST-2,sp),x
1711                     ; 232 	g_pSelTab = pSelTab;
1713  0240 bf09          	ldw	L11_g_pSelTab,x
1714                     ; 234 	display_clsscr(pdevice);
1716  0242 1e10          	ldw	x,(OFST+1,sp)
1717  0244 cd001b        	call	_display_clsscr
1719                     ; 236 	for (i=0;i<pSelTab->bFieldsNumber;i++)
1721  0247 0f0f          	clr	(OFST+0,sp)
1723  0249 cc04d3        	jra	L5201
1724  024c               L1201:
1725                     ; 238 		ValSize_t Size = pSelTab->pField[i].Size;
1727  024c 7b0f          	ld	a,(OFST+0,sp)
1728  024e 97            	ld	xl,a
1729  024f a609          	ld	a,#9
1730  0251 160d          	ldw	y,(OFST-2,sp)
1731  0253 42            	mul	x,a
1732  0254 90ee01        	ldw	y,(1,y)
1733  0257 90bf00        	ldw	c_x,y
1734  025a 72bb0000      	addw	x,c_x
1735  025e e604          	ld	a,(4,x)
1736  0260 6b05          	ld	(OFST-10,sp),a
1737                     ; 241 		display_setcurrpos((display_index_t)1,(display_index_t)(i+1));
1739  0262 7b0f          	ld	a,(OFST+0,sp)
1740  0264 4c            	inc	a
1741  0265 97            	ld	xl,a
1742  0266 a601          	ld	a,#1
1743  0268 95            	ld	xh,a
1744  0269 cd0050        	call	_display_setcurrpos
1746                     ; 242 		display_printstr(pdevice,pSelTab->pField[i].Label);
1748  026c 7b0f          	ld	a,(OFST+0,sp)
1749  026e 97            	ld	xl,a
1750  026f a609          	ld	a,#9
1751  0271 160d          	ldw	y,(OFST-2,sp)
1752  0273 42            	mul	x,a
1753  0274 90ee01        	ldw	y,(1,y)
1754  0277 90bf00        	ldw	c_x,y
1755  027a 72bb0000      	addw	x,c_x
1756  027e fe            	ldw	x,(x)
1757  027f 89            	pushw	x
1758  0280 1e12          	ldw	x,(OFST+3,sp)
1759  0282 cd008e        	call	_display_printstr
1761  0285 85            	popw	x
1762                     ; 244 		if (Size != TYPE_TXT)
1764  0286 7b05          	ld	a,(OFST-10,sp)
1765  0288 a105          	cp	a,#5
1766  028a 2738          	jreq	L1301
1767                     ; 247 			display_setcurrpos((display_index_t)9,(display_index_t)(i+1));
1769  028c 7b0f          	ld	a,(OFST+0,sp)
1770  028e 4c            	inc	a
1771  028f 97            	ld	xl,a
1772  0290 a609          	ld	a,#9
1773  0292 95            	ld	xh,a
1774  0293 cd0050        	call	_display_setcurrpos
1776                     ; 249 			if (pSelTab->pField[i].Type != EDIT)
1778  0296 7b0f          	ld	a,(OFST+0,sp)
1779  0298 97            	ld	xl,a
1780  0299 a609          	ld	a,#9
1781  029b 160d          	ldw	y,(OFST-2,sp)
1782  029d 42            	mul	x,a
1783  029e 90ee01        	ldw	y,(1,y)
1784  02a1 90bf00        	ldw	c_x,y
1785  02a4 72bb0000      	addw	x,c_x
1786  02a8 e603          	ld	a,(3,x)
1787  02aa 2704          	jreq	L3301
1788                     ; 251 				display_printchar(pdevice,' '); // Read Only
1790  02ac 4b20          	push	#32
1793  02ae 200e          	jp	LC002
1794  02b0               L3301:
1795                     ; 255 				if (pUserInterface->bField_Edit == i)
1797  02b0 1e14          	ldw	x,(OFST+5,sp)
1798  02b2 e605          	ld	a,(5,x)
1799  02b4 110f          	cp	a,(OFST+0,sp)
1800  02b6 2604          	jrne	L7301
1801                     ; 257 					display_printchar(pdevice,18); // Edit mode
1803  02b8 4b12          	push	#18
1806  02ba 2002          	jp	LC002
1807  02bc               L7301:
1808                     ; 261 					display_printchar(pdevice,16); // Field Editable
1810  02bc 4b10          	push	#16
1812  02be               LC002:
1813  02be 1e11          	ldw	x,(OFST+2,sp)
1814  02c0 cd006f        	call	_display_printchar
1815  02c3 84            	pop	a
1816  02c4               L1301:
1817                     ; 266 		switch (Size)
1819  02c4 7b05          	ld	a,(OFST-10,sp)
1821                     ; 342 					display_printstr(pdevice,"OFF");
1822  02c6 271a          	jreq	L117
1823  02c8 a002          	sub	a,#2
1824  02ca 275c          	jreq	L517
1825  02cc 4a            	dec	a
1826  02cd 2603cc0383    	jreq	L717
1827  02d2 4a            	dec	a
1828  02d3 2603cc03de    	jreq	L127
1829  02d8 a002          	sub	a,#2
1830  02da 2603cc045f    	jreq	L327
1831  02df cc04a2        	jra	L5401
1832  02e2               L117:
1833                     ; 268 			case TYPE_U8:
1833                     ; 269 				display_setcurrpos((display_index_t)11,(display_index_t)(i+1));
1835  02e2 7b0f          	ld	a,(OFST+0,sp)
1836  02e4 4c            	inc	a
1837  02e5 97            	ld	xl,a
1838  02e6 a60b          	ld	a,#11
1839  02e8 95            	ld	xh,a
1840  02e9 cd0050        	call	_display_setcurrpos
1842                     ; 270 				display_printchar(pdevice,' ');
1844  02ec 4b20          	push	#32
1845  02ee 1e11          	ldw	x,(OFST+2,sp)
1846  02f0 cd006f        	call	_display_printchar
1848  02f3 84            	pop	a
1849                     ; 271 				display_setcurrpos((display_index_t)12,(display_index_t)(i+1));
1851  02f4 7b0f          	ld	a,(OFST+0,sp)
1852  02f6 4c            	inc	a
1853  02f7 97            	ld	xl,a
1854  02f8 a60c          	ld	a,#12
1855  02fa 95            	ld	xh,a
1856  02fb cd0050        	call	_display_setcurrpos
1858                     ; 272 				APP_sPrintDec(Out,((PFN_getu8_t)pSelTab->pField[i].pGetValue)(),3);
1860  02fe 4b03          	push	#3
1861  0300 7b10          	ld	a,(OFST+1,sp)
1862  0302 97            	ld	xl,a
1863  0303 a609          	ld	a,#9
1864  0305 160e          	ldw	y,(OFST-1,sp)
1865  0307 42            	mul	x,a
1866  0308 90ee01        	ldw	y,(1,y)
1867  030b 90bf00        	ldw	c_x,y
1868  030e 72bb0000      	addw	x,c_x
1869  0312 ee05          	ldw	x,(5,x)
1870  0314 fd            	call	(x)
1872  0315 5f            	clrw	x
1873  0316 97            	ld	xl,a
1874  0317 89            	pushw	x
1875  0318 96            	ldw	x,sp
1876  0319 1c000a        	addw	x,#OFST-5
1877  031c cd00f0        	call	_APP_sPrintDec
1879  031f 5b03          	addw	sp,#3
1880                     ; 273 				display_printstr(pdevice,Out);
1882  0321 96            	ldw	x,sp
1883  0322 1c0007        	addw	x,#OFST-8
1885                     ; 274 			break;
1887  0325 cc049b        	jp	LC003
1888                     ; 275 			case TYPE_S8:
1888                     ; 276 			break;
1890  0328               L517:
1891                     ; 279 				s16 wVal=((PFN_gets16_t)pSelTab->pField[i].pGetValue)();
1893  0328 7b0f          	ld	a,(OFST+0,sp)
1894  032a 97            	ld	xl,a
1895  032b a609          	ld	a,#9
1896  032d 160d          	ldw	y,(OFST-2,sp)
1897  032f 42            	mul	x,a
1898  0330 90ee01        	ldw	y,(1,y)
1899  0333 90bf00        	ldw	c_x,y
1900  0336 72bb0000      	addw	x,c_x
1901  033a ee05          	ldw	x,(5,x)
1902  033c fd            	call	(x)
1904  033d 1f03          	ldw	(OFST-12,sp),x
1905                     ; 281 				display_setcurrpos((display_index_t)10,(display_index_t)(i+1));
1907  033f 7b0f          	ld	a,(OFST+0,sp)
1908  0341 4c            	inc	a
1909  0342 97            	ld	xl,a
1910  0343 a60a          	ld	a,#10
1911  0345 95            	ld	xh,a
1912  0346 cd0050        	call	_display_setcurrpos
1914                     ; 282 				if (wVal < 0)
1916  0349 1e03          	ldw	x,(OFST-12,sp)
1917  034b 2a0f          	jrpl	L7401
1918                     ; 284 					display_printchar(pdevice,'-');
1920  034d 4b2d          	push	#45
1921  034f 1e11          	ldw	x,(OFST+2,sp)
1922  0351 cd006f        	call	_display_printchar
1924  0354 84            	pop	a
1925                     ; 285 					wVal = -wVal;
1927  0355 1e03          	ldw	x,(OFST-12,sp)
1928  0357 50            	negw	x
1929  0358 1f03          	ldw	(OFST-12,sp),x
1931  035a 2008          	jra	L1501
1932  035c               L7401:
1933                     ; 289 					display_printchar(pdevice,' ');
1935  035c 4b20          	push	#32
1936  035e 1e11          	ldw	x,(OFST+2,sp)
1937  0360 cd006f        	call	_display_printchar
1939  0363 84            	pop	a
1940  0364               L1501:
1941                     ; 291 				display_setcurrpos((display_index_t)11,(display_index_t)(i+1));
1943  0364 7b0f          	ld	a,(OFST+0,sp)
1944  0366 4c            	inc	a
1945  0367 97            	ld	xl,a
1946  0368 a60b          	ld	a,#11
1947  036a 95            	ld	xh,a
1948  036b cd0050        	call	_display_setcurrpos
1950                     ; 292 				APP_sPrintDec(Out,wVal,4);
1952  036e 4b04          	push	#4
1953  0370 1e04          	ldw	x,(OFST-11,sp)
1954  0372 89            	pushw	x
1955  0373 96            	ldw	x,sp
1956  0374 1c000a        	addw	x,#OFST-5
1957  0377 cd00f0        	call	_APP_sPrintDec

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -