Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: EthernetInterface k64f_EthLink mbed-rtos mbed
Fork of K64F_EthLink_HelloWorld by
main.cpp@0:66507f292910, 2014-09-30 (annotated)
- Committer:
- loopsva
- Date:
- Tue Sep 30 21:41:06 2014 +0000
- Revision:
- 0:66507f292910
Crude driver to get the K64F's Ethernet link status via MDIO.
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| loopsva | 0:66507f292910 | 1 | #include "mbed.h" |
| loopsva | 0:66507f292910 | 2 | #include "EthernetInterface.h" |
| loopsva | 0:66507f292910 | 3 | #include "k64f_EthLink.h" |
| loopsva | 0:66507f292910 | 4 | |
| loopsva | 0:66507f292910 | 5 | EthernetInterface eth; |
| loopsva | 0:66507f292910 | 6 | k64fEthLink link; |
| loopsva | 0:66507f292910 | 7 | Serial pc(USBTX, USBRX); |
| loopsva | 0:66507f292910 | 8 | |
| loopsva | 0:66507f292910 | 9 | //--------------------------------------------------------------------------------------------------------------------------------------// |
| loopsva | 0:66507f292910 | 10 | // Check for a valid Ethernet Link, print ONLY on status change and keep count of link "downs" |
| loopsva | 0:66507f292910 | 11 | |
| loopsva | 0:66507f292910 | 12 | bool EthPhyUpT = false; |
| loopsva | 0:66507f292910 | 13 | int EthUpDownCnt = 0; |
| loopsva | 0:66507f292910 | 14 | |
| loopsva | 0:66507f292910 | 15 | int TestEthLink() { |
| loopsva | 0:66507f292910 | 16 | int EthLinkStat = link.GetELink(); |
| loopsva | 0:66507f292910 | 17 | if((!(EthLinkStat)) && (EthPhyUpT == false)) { |
| loopsva | 0:66507f292910 | 18 | pc.printf("Eth Link UP\r\n"); |
| loopsva | 0:66507f292910 | 19 | EthPhyUpT = true; |
| loopsva | 0:66507f292910 | 20 | } else if(((EthLinkStat)) && (EthPhyUpT == true)){ |
| loopsva | 0:66507f292910 | 21 | EthUpDownCnt++; |
| loopsva | 0:66507f292910 | 22 | pc.printf("Eth Link DOWN, count: %d\r\n", EthUpDownCnt); |
| loopsva | 0:66507f292910 | 23 | EthPhyUpT = false; |
| loopsva | 0:66507f292910 | 24 | } |
| loopsva | 0:66507f292910 | 25 | if(EthLinkStat == MDIO_TIMEOUT) return(MDIO_TIMEOUT); |
| loopsva | 0:66507f292910 | 26 | if(EthPhyUpT == true) return(PHY_UP); |
| loopsva | 0:66507f292910 | 27 | return(PHY_DOWN); |
| loopsva | 0:66507f292910 | 28 | } |
| loopsva | 0:66507f292910 | 29 | |
| loopsva | 0:66507f292910 | 30 | //--------------------------------------------------------------------------------------------------------------------------------------// |
| loopsva | 0:66507f292910 | 31 | |
| loopsva | 0:66507f292910 | 32 | int main() { |
| loopsva | 0:66507f292910 | 33 | pc.baud(230400); |
| loopsva | 0:66507f292910 | 34 | pc.printf("\r\n\r\nBasic Ethernet Link Up / Down test for K64F\r\n"); |
| loopsva | 0:66507f292910 | 35 | int EthInitStatus = eth.init(); |
| loopsva | 0:66507f292910 | 36 | |
| loopsva | 0:66507f292910 | 37 | /* Finish up initialization here!!! */ |
| loopsva | 0:66507f292910 | 38 | |
| loopsva | 0:66507f292910 | 39 | while(1) { |
| loopsva | 0:66507f292910 | 40 | Thread::wait(500); |
| loopsva | 0:66507f292910 | 41 | int i = TestEthLink(); |
| loopsva | 0:66507f292910 | 42 | if(i == MDIO_TIMEOUT) pc.printf("MDIO Timeout!!!\r\n"); |
| loopsva | 0:66507f292910 | 43 | } |
| loopsva | 0:66507f292910 | 44 | } |
