Revision: 1762
Author: [email protected]
Date: Wed Mar 10 18:22:04 2010
Log: removed crc lib + sample, needs more thought
http://code.google.com/p/jallib/source/detail?r=1762
Deleted:
/trunk/include/jal/crc.jal
/trunk/sample/18f4620_crc.jal
=======================================
--- /trunk/include/jal/crc.jal Mon Mar 8 21:03:04 2010
+++ /dev/null
@@ -1,154 +0,0 @@
--- Title: Library for CRC data error checking.
--- Author: Matthew Schinkel - borntechi.com, copyright (c) 2009, all
rights reserved.
--- Adapted-by:
--- Compiler: >=2.4m
---
--- This file is part of jallib (http://jallib.googlecode.com)
--- Released under the ZLIB license
(http://www.opensource.org/licenses/zlib-license.html)
---
--- Description: This library creates CRC data and also verifies CRC data
---
--- Notes:
--- Currently only supports 3-Bit CRC. Please add others if needed.
---
--- Sources:
--- http://www.ece.unb.ca/tervo/ee4253/crc.shtml
--- http://en.wikipedia.org/wiki/Cyclic_redundancy_check
---
-
---------------------------------------------------------------------------------
--- returns a 3-bit crc generated from a data byte
--- insert a 4 bit polynomial, here are some polynomial examples:
--- 1011 = x3+x+1
--- 1101 = x3+x2+1
---------------------------------------------------------------------------------
-function crc_3_byte_create(byte in polynomial, byte in data) return byte is
- var word remainder = data
- var word polynomial2 = polynomial
-
- remainder = remainder << 3 -- add 3 zero's right of byte
-
- polynomial2 = polynomial2 << 7 -- move the polynomial to left
-
- -- make each data byte readable
- var bit bit10 at remainder : 10
- var bit bit9 at remainder : 9
- var bit bit8 at remainder : 8
- var bit bit7 at remainder : 7
- var bit bit6 at remainder : 6
- var bit bit5 at remainder : 5
- var bit bit4 at remainder : 4
- var bit bit3 at remainder : 3
-
- if bit10 == 1 then
- remainder = remainder ^ polynomial2 -- xor
- end if
- polynomial2 = polynomial2 >> 1 -- shift
-
- if bit9 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit8 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit7 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit6 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit5 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit4 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit3 == 1 then
- remainder = remainder ^ polynomial2
- end if
-
- return byte(remainder) -- return the crc data created
-end function
-
---------------------------------------------------------------------------------
--- returns true or false if 3-bit crc is correct
--- insert same polynomial as create function
---------------------------------------------------------------------------------
-function crc_3_byte_verify(byte in polynomial, byte in data, byte in crc)
return byte is
- var word remainder = data
- var word polynomial2 = polynomial
-
- -- add the crc data to right side of byte
- remainder = remainder << 3
- remainder = remainder + crc
-
- polynomial2 = polynomial2 << 7 -- move polynomial to left
-
- -- make each data byte readable
- var bit bit10 at remainder : 10
- var bit bit9 at remainder : 9
- var bit bit8 at remainder : 8
- var bit bit7 at remainder : 7
- var bit bit6 at remainder : 6
- var bit bit5 at remainder : 5
- var bit bit4 at remainder : 4
- var bit bit3 at remainder : 3
-
- if bit10 == 1 then
- remainder = remainder ^ polynomial2 -- xor
- end if
- polynomial2 = polynomial2 >> 1 -- shift
-
- if bit9 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit8 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit7 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit6 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit5 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit4 == 1 then
- remainder = remainder ^ polynomial2
- end if
- polynomial2 = polynomial2 >> 1
-
- if bit3 == 1 then
- remainder = remainder ^ polynomial2
- end if
-
- -- return if data is good
- if remainder == 0 then
- return true
- else
- return false
- end if
-end function
=======================================
--- /trunk/sample/18f4620_crc.jal Mon Mar 8 21:03:04 2010
+++ /dev/null
@@ -1,61 +0,0 @@
--- Title: Sample file for CRC data error checking.
--- Author: Matthew Schinkel - borntechi.com, copyright (c) 2009, all
rights reserved.
--- Adapted-by:
--- Compiler: >=2.4m
---
--- This file is part of jallib (http://jallib.googlecode.com)
--- Released under the BSD license
(http://www.opensource.org/licenses/bsd-license.php)
---
--- Description: This sample shows usage of the CRC library which can be
used
--- to create or verify crc data.
---
--- Notes:
---
--- Sources:
--- http://www.ece.unb.ca/tervo/ee4253/crc.shtml
--- http://en.wikipedia.org/wiki/Cyclic_redundancy_check
---
-
-include 18f4620 -- target PICmicro
---
--- This program assumes a 20 MHz resonator or crystal
--- is connected to pins OSC1 and OSC2.
--- Unspecified configuration bits may cause a different frequency!
-pragma target clock 20_000_000 -- oscillator frequency
--- configuration memory settings (fuses)
-pragma target OSC HS -- HS crystal or resonator
-pragma target WDT disabled -- no watchdog
-pragma target LVP disabled -- no Low Voltage Programming
-pragma target MCLR external -- reset externally
-
--- setup uart for communication
-const serial_hw_baudrate = 115200 -- set the baudrate
-include serial_hardware
-serial_hw_init()
-
-include crc
-
--- Imaginary master device code
-const byte poly = 0b1101 -- choose a polynomial
-var byte crc -- holds 3-bit crc data
-crc = crc_3_byte_create(poly, 0b110010) -- create the crc data
-
--- Imaginary data transmission here
-
--- Imaginary slave device code
-const byte poly2 = 0b1101 -- use same
polynomial
-var byte is_good_data -- holds true or
false
-is_good_data = crc_3_byte_verify(poly2, 0b110010, crc) -- verify crc data
-
-forever loop -- now do something after data has been recieved
- _usec_delay (1_000_000)
-
- -- sends 3-bit crc data
- serial_hw_data = (crc)
-
- -- You will receive TRUE, unless the data input for
- -- create function is different then data input for
- -- verify function
- serial_hw_data = (is_good_data)
-end loop
-
--
You received this message because you are subscribed to the Google Groups
"jallib" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to
[email protected].
For more options, visit this group at
http://groups.google.com/group/jallib?hl=en.