Subversion Repositories freemyipod

Rev

Rev 835 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 835 Rev 841
Line 135... Line 135...
135
    oldtouched = false;
135
    oldtouched = false;
136
    oldbuttons = 0;
136
    oldbuttons = 0;
137
    lastpacket = 0;
137
    lastpacket = 0;
138
    collect = 0;
138
    collect = 0;
139
    lastdiff = 0;
139
    lastdiff = 0;
140
    INTMSK |= 1 << IRQ_WHEEL;
-
 
141
    PWRCON(1) &= ~1;
140
    PWRCON(1) &= ~1;
142
    PCON15 = (PCON15 & ~0xFFFF0000) | 0x22220000;
141
    PCON15 = (PCON15 & ~0xFFFF0000) | 0x22220000;
143
    PUNK15 = 0xF0;
142
    PUNK15 = 0xF0;
-
 
143
    PCON10 = (PCON10 & ~0xFF0) | 0x10;
-
 
144
    WHEELINT = 7;
-
 
145
    WHEEL10 = 1;
-
 
146
    INTMSK |= 1 << IRQ_WHEEL;
144
    WHEEL08 = 0x3A980;
147
    WHEEL08 = 0x3A980;
145
    WHEEL00 = 0x280000;
148
    WHEEL00 = 0x280000;
146
    WHEEL10 = 3;
-
 
147
    PCON10 = (PCON10 & ~0xFF0) | 0x10;
149
    while (WHEEL0C & 4) yield();
148
    PDAT10 |= 2;
150
    PDAT10 |= 2;
149
    WHEELTX = 0x8000023A;
151
    WHEELTX = 0x8000023A;
150
    WHEEL04 |= 1;
152
    WHEEL04 |= 1;
151
    PDAT10 &= ~2;
153
    PDAT10 &= ~2;
152
    thread_create(&clickwheel_thread_handle, "Clickwheel dispatcher",
154
    thread_create(&clickwheel_thread_handle, "Clickwheel dispatcher", clickwheel_thread,
153
                  clickwheel_thread, clickwheel_stack,
-
 
154
                  sizeof(clickwheel_stack), OS_THREAD, 200, true,
155
                  clickwheel_stack, sizeof(clickwheel_stack), OS_THREAD, 200, true,
155
                  NULL, NULL, NULL, NULL);
156
                  NULL, NULL, NULL, NULL);
156
}
157
}
157
 
158
 
158
void INT_WHEEL(void) ICODE_ATTR;
159
void INT_WHEEL(void) ICODE_ATTR;
159
void INT_WHEEL()
160
void INT_WHEEL()
160
{
161
{
161
    uint32_t events = WHEELINT;
162
    uint32_t events = WHEELINT;
162
    if (events & 4) WHEELINT = 4;
-
 
163
    if (events & 2) WHEELINT = 2;
-
 
164
    if (events & 1)
163
    if (events & 1)
165
    {
164
    {
166
        clickwheel_packet = WHEELRX;
165
        clickwheel_packet = WHEELRX;
167
        wakeup_signal(&clickwheel_wakeup);
166
        wakeup_signal(&clickwheel_wakeup);
168
        WHEELINT = 1;
-
 
169
    }
167
    }
-
 
168
    WHEELINT = events;
170
}
169
}
171
 
170
 
172
uint32_t clickwheel_get_state()
171
uint32_t clickwheel_get_state()
173
{
172
{
174
    return (oldtouched << 15) | (oldpos << 8) | oldbuttons;
173
    return (oldtouched << 15) | (oldpos << 8) | oldbuttons;