OpenCores
URL https://opencores.org/ocsvn/usb_nand_reader/usb_nand_reader/trunk

Subversion Repositories usb_nand_reader

[/] [usb_nand_reader/] [trunk/] [mini32/] [NandDataLine.c] - Blame information for rev 7

Details | Compare with Previous | View Log

Line No. Rev Author Line
1 7 pradd
 
2
#include "NandDataLine.h"
3
 
4
/* NAND data line */
5
sbit nand_b0 at LATE2_bit;
6
sbit nand_b1 at LATE3_bit;
7
sbit nand_b2 at LATG7_bit;
8
sbit nand_b3 at LATG8_bit;
9
sbit nand_b4 at LATF5_bit;
10
sbit nand_b5 at LATF4_bit;
11
sbit nand_b6 at LATE4_bit;
12
sbit nand_b7 at LATE5_bit;
13
 
14
 
15
void init_nand_data_line()
16
{
17
     TRISE = 0;
18
     TRISF = 0;
19
     TRISG = 0;
20
 
21
     LATE = 0;
22
     LATF = 0;
23
     LATG = 0;
24
 
25
     nand_b0 = 0;
26
     nand_b1 = 0;
27
     nand_b2 = 0;
28
     nand_b3 = 0;
29
     nand_b4 = 0;
30
     nand_b5 = 0;
31
     nand_b6 = 0;
32
     nand_b7 = 0;
33
}
34
 
35
 
36
int data_line_last_op = NAND_LAST_OP_NONE;
37
 
38
void data_line_write_byte(unsigned char b)
39
{
40
     if(data_line_last_op != NAND_LAST_OP_WRITE)
41
     {
42
       TRISE2_bit = 0; TRISE3_bit = 0; TRISE4_bit = 0; TRISE5_bit = 0;
43
       TRISF4_bit = 0; TRISF5_bit = 0;
44
       TRISG7_bit = 0; TRISG8_bit = 0;
45
       data_line_last_op = NAND_LAST_OP_WRITE;
46
     }
47
     nand_b0 = (b) & 1;
48
     nand_b1 = (b >> 1) & 1;
49
     nand_b2 = (b >> 2) & 1;
50
     nand_b3 = (b >> 3) & 1;
51
     nand_b4 = (b >> 4) & 1;
52
     nand_b5 = (b >> 5) & 1;
53
     nand_b6 = (b >> 6) & 1;
54
     nand_b7 = (b >> 7) & 1;
55
     asm NOP;
56
     asm NOP;
57
     asm NOP;
58
}
59
 
60
 
61
unsigned char data_line_read_byte()
62
{
63
     unsigned char d = 0;
64
     if(data_line_last_op != NAND_LAST_OP_READ)
65
     {
66
       TRISE2_bit = 1; TRISE3_bit = 1; TRISE4_bit = 1; TRISE5_bit = 1;
67
       TRISF4_bit = 1; TRISF5_bit = 1;
68
       TRISG7_bit = 1; TRISG8_bit = 1;
69
       data_line_last_op = NAND_LAST_OP_READ;
70
     }
71
     d |= (unsigned char)PORTE.B2;//nand_b0;
72
     d |= ((unsigned char)PORTE.B3 << 1);//nand_b1 << 1);
73
     d |= ((unsigned char)PORTG.B7 << 2);//nand_b2 << 2);
74
     d |= ((unsigned char)PORTG.B8 << 3);//nand_b3 << 3);
75
     d |= ((unsigned char)PORTF.B5 << 4);//nand_b4 << 4);
76
     d |= ((unsigned char)PORTF.B4 << 5);//nand_b5 << 5);
77
     d |= ((unsigned char)PORTE.B4 << 6);//nand_b6 << 6);
78
     d |= ((unsigned char)PORTE.B5 << 7);//nand_b7 << 7);
79
     return d;
80
}

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.