Mercurial > public > hwos_code
comparison src/tft_outputs.asm @ 249:94bf757690cf
ignore sensor for non-sensor hardware
| author | heinrichsweikamp |
|---|---|
| date | Tue, 17 Mar 2015 12:16:15 +0100 |
| parents | afe73e1a0181 |
| children | 20e3bad0b0f2 |
comparison
equal
deleted
inserted
replaced
| 248:afe73e1a0181 | 249:94bf757690cf |
|---|---|
| 1122 call TFT_standard_color | 1122 call TFT_standard_color |
| 1123 return | 1123 return |
| 1124 | 1124 |
| 1125 global TFT_surface_sensor ; Update Sensor data in surface mode | 1125 global TFT_surface_sensor ; Update Sensor data in surface mode |
| 1126 TFT_surface_sensor: | 1126 TFT_surface_sensor: |
| 1127 movf hardware_flag,W | |
| 1128 sublw 0x11 ; 2 with BLE | |
| 1129 btfsc STATUS,Z | |
| 1130 return ; Ignore for 0x11 | |
| 1131 | |
| 1127 ; show three sensors | 1132 ; show three sensors |
| 1128 bsf leftbind | 1133 bsf leftbind |
| 1129 WIN_SMALL surf_hud_sensor1_column,surf_hud_sensor1_row | 1134 WIN_SMALL surf_hud_sensor1_column,surf_hud_sensor1_row |
| 1130 btfsc use_O2_sensor1 ; Use Sensor 1? | 1135 btfsc use_O2_sensor1 ; Use Sensor 1? |
| 1131 bra TFT_surface_sensor1 ; Yes | 1136 bra TFT_surface_sensor1 ; Yes |
| 1422 STRCPY_TEXT_PRINT tHeading ; Heading: | 1427 STRCPY_TEXT_PRINT tHeading ; Heading: |
| 1423 return | 1428 return |
| 1424 | 1429 |
| 1425 global TFT_dive_compass_mask | 1430 global TFT_dive_compass_mask |
| 1426 TFT_dive_compass_mask: | 1431 TFT_dive_compass_mask: |
| 1427 WIN_BOX_STD dive_compass_graph_row-.3,dive_compass_graph_row,(dive_compass_graph_left+dive_compass_graph_right)/.2-.2,(dive_compass_graph_left+dive_compass_graph_right)/.2+.2 | 1432 WIN_TINY dive_compass_mask_column,dive_compass_mask_row |
| 1428 WIN_FRAME_STD dive_compass_graph_row, dive_compass_graph_row+dive_compass_graph_height,dive_compass_graph_left-.1,dive_compass_graph_right-.1 | 1433 call TFT_divemask_color |
| 1429 return | 1434 STRCPY_TEXT_PRINT tHeading ; Heading: |
| 1430 | 1435 return |
| 1431 ; WIN_TINY dive_compass_mask_column,dive_compass_mask_row | |
| 1432 ; call TFT_divemask_color | |
| 1433 ; STRCPY_TEXT_PRINT tHeading ; Heading: | |
| 1434 ; return | |
| 1435 | |
| 1436 | 1436 |
| 1437 global TFT_surface_compass_heading | 1437 global TFT_surface_compass_heading |
| 1438 TFT_surface_compass_heading: | 1438 TFT_surface_compass_heading: |
| 1439 rcall compass_heading_common | 1439 rcall compass_heading_common |
| 1440 WIN_STD surf_compass_head_column,surf_compass_head_row | 1440 WIN_STD surf_compass_head_column,surf_compass_head_row |
| 1494 return | 1494 return |
| 1495 | 1495 |
| 1496 global TFT_dive_compass_heading | 1496 global TFT_dive_compass_heading |
| 1497 TFT_dive_compass_heading: | 1497 TFT_dive_compass_heading: |
| 1498 rcall compass_heading_common | 1498 rcall compass_heading_common |
| 1499 | |
| 1500 ; Graphic output | |
| 1501 movff compass_heading_shown+0,lo | |
| 1502 movff compass_heading_shown+1,hi | |
| 1503 bcf STATUS,C | |
| 1504 rrcf hi,F | |
| 1505 rrcf lo,F ; /2 -> heading 0-179 in lo | |
| 1506 | |
| 1507 ;; Debug | |
| 1508 ; WIN_TINY .0,.71 | |
| 1509 ; output_8 | |
| 1510 ; STRCAT_PRINT " " | |
| 1511 ;; Debug | |
| 1512 | |
| 1513 ; With 60° shown, left border is heading-30° or lo - 15 | |
| 1514 movlw .15 | |
| 1515 subwf lo,W | |
| 1516 btfss STATUS,C ; <0? | |
| 1517 addlw .180 ; Yes, adjust value | |
| 1518 movwf lo ; lo has now left border of graphic in 0-179 | |
| 1519 | |
| 1520 ;; Debug | |
| 1521 ; WIN_TINY .0,.85 | |
| 1522 ; output_8 | |
| 1523 ; STRCAT_PRINT " " | |
| 1524 ;; Debug | |
| 1525 | |
| 1526 ; Draw marks (left border of graphic is in lo) | |
| 1527 ; WIN_BOX_BLACK dive_compass_graph_row+.1,dive_compass_graph_row+dive_compass_graph_height-.1,dive_compass_graph_left,dive_compass_graph_right-.2 | |
| 1528 ; WIN_FRAME_STD dive_compass_graph_row, dive_compass_graph_row+dive_compass_graph_height,dive_compass_graph_left-.1,dive_compass_graph_right-.1 | |
| 1529 movlw dive_compass_graph_row+.1 | |
| 1530 movff WREG,win_top | |
| 1531 movlw dive_compass_graph_height-.1 | |
| 1532 movff WREG,win_height | |
| 1533 | |
| 1534 ; lo is 0-179, draw first mark at full 10° | |
| 1535 incf lo,F ; +1 | |
| 1536 setf hi ; =255 | |
| 1537 TFT_compass_graph1: | |
| 1538 lfsr FSR2,buffer | |
| 1539 incf hi,F | |
| 1540 decf lo,F | |
| 1541 output_8 | |
| 1542 movlw "0" | |
| 1543 movwf up ; Digit "0" | |
| 1544 movff buffer+2,WREG | |
| 1545 cpfseq up ; Last digit = 0? | |
| 1546 bra TFT_compass_graph1b ; No | |
| 1547 bra TFT_compass_graph1a ; Yes | |
| 1548 TFT_compass_graph1b: | |
| 1549 movlw "5" | |
| 1550 movwf up ; Digit "5" | |
| 1551 movff buffer+2,WREG | |
| 1552 cpfseq up ; Last digit = 5? | |
| 1553 bra TFT_compass_graph1 ; No | |
| 1554 | |
| 1555 TFT_compass_graph1a: | |
| 1556 ; Yes setup PROD for the first mark | |
| 1557 movlw .5 | |
| 1558 mulwf hi | |
| 1559 movlw dive_compass_graph_leftx2 | |
| 1560 addwf PRODL,F | |
| 1561 movlw .0 | |
| 1562 addwfc PRODH,F ; add left offset | |
| 1563 | |
| 1564 movlw .11 ; amount of marks (-1) | |
| 1565 movwf up | |
| 1566 TFT_compass_graph2: | |
| 1567 movff PRODL,lo | |
| 1568 movff PRODH,hi ; Backup | |
| 1569 rcall TFT_compass_graph3 ; Write one mark | |
| 1570 movff lo,PRODL | |
| 1571 movff hi,PRODH ; Restore | |
| 1572 movlw .25 ; Spacing in pixels | |
| 1573 addwf PRODL,F | |
| 1574 movlw .0 | |
| 1575 addwfc PRODH,F | |
| 1576 decfsz up,F | |
| 1577 bra TFT_compass_graph2 | |
| 1578 | |
| 1579 rcall TFT_compass_graph4 ; Write one mark without black space | |
| 1580 | |
| 1581 ; Text output | 1499 ; Text output |
| 1582 WIN_STD dive_compass_head_column,dive_compass_head_row | 1500 WIN_STD dive_compass_head_column,dive_compass_head_row |
| 1583 call TFT_standard_color | 1501 call TFT_standard_color |
| 1584 rcall TFT_surface_compass_heading_com ; Show "000° N" | 1502 rcall TFT_surface_compass_heading_com ; Show "000° N" |
| 1585 | 1503 return ; No graphical output (yet) |
| 1586 return ; Done. | |
| 1587 | |
| 1588 | |
| 1589 TFT_compass_graph3: | |
| 1590 rcall TFT_compass_graph4 ; Mark | |
| 1591 movff lo,PRODL | |
| 1592 movff hi,PRODH ; Restore | |
| 1593 | |
| 1594 ; black space | |
| 1595 clrf WREG | |
| 1596 movff WREG,win_color1 | |
| 1597 movff WREG,win_color2 ; Set to black | |
| 1598 movlw dive_compass_graph_width+.1 | |
| 1599 addwf PRODL,F | |
| 1600 movlw .0 | |
| 1601 addwfc PRODH,F | |
| 1602 movlw .20 ; Spacing in pixels | |
| 1603 movff WREG,win_width+0 | |
| 1604 call TFT_box_write_16bit_win_left ; With column in PRODL:PRODH | |
| 1605 movf win_width,W | |
| 1606 bcf STATUS,C | |
| 1607 rlcf WREG | |
| 1608 movwf win_width+0 | |
| 1609 movlw 0 | |
| 1610 rlcf WREG | |
| 1611 movwf win_width+1 | |
| 1612 call TFT_box_16bit_win_left ; Fill window | |
| 1613 return | |
| 1614 | |
| 1615 TFT_compass_graph4: | |
| 1616 call TFT_divemask_color | |
| 1617 ;---- Define Window ------------------------------------------------------ | |
| 1618 movlw dive_compass_graph_width | |
| 1619 movff WREG,win_width+0 | |
| 1620 clrf win_width+1 | |
| 1621 call TFT_box_write_16bit_win_left ; With column in PRODL:PRODH | |
| 1622 movf win_width,W | |
| 1623 bcf STATUS,C | |
| 1624 rlcf WREG | |
| 1625 movwf win_width+0 | |
| 1626 movlw 0 | |
| 1627 rlcf WREG | |
| 1628 movwf win_width+1 | |
| 1629 call TFT_box_16bit_win_left ; Fill window | |
| 1630 return | |
| 1631 | |
| 1632 | 1504 |
| 1633 tft_compass_cardinal: | 1505 tft_compass_cardinal: |
| 1634 btfsc hi,0 ; Heading >255°? | 1506 btfsc hi,0 ; Heading >255°? |
| 1635 bra tft_compass_cardinal2 ; Yes must be W, NW or N | 1507 bra tft_compass_cardinal2 ; Yes must be W, NW or N |
| 1636 ; No, Must be W, SW, S, SE, E, NE or N | 1508 ; No, Must be W, SW, S, SE, E, NE or N |
