
|
![]() | #6 (permalink) Top |
User Data registr.: 06-08-2007 Residenza: Empoli
Messaggi: 1.813
|
Come sempre, aveva ragione lui ![]() Vi spiego qual'erano le cause perché potreste cascarci anche voi. Usando il PLL, per impostare il clock di sistema dovete impostare anche CPUDIV, 2 bit che dividono il clock per 2, 3, 4 oppure 6. Nel CCS C la definizione, o meglio, i #fuses legati al CPUDIV possono trarre in inganno. Trattandosi di fuses e non di define, non vedete immediatamente cosa state facendo ![]() Infatti il fuses CPUDIV2 non divide per 2 il clock come potrebbe sembrare. E analogamente CPUDIV4 non divide per 4. Al contrario delle #define solite dove, per esempio, i prescaler vengono definiti con un nome che indica il valore della divisione, i fuses CPUDIVx indicano nella cifra il valore dei 2 bit che verranno impostati. Quindi CPUDIV1 divide per 2, CPUDIV2 divide per 3 (e NON per 2), CPUDIV3 divide per 4 e CPUDIV4 divide per 6. Dopo essere impazzito per qualche giorno ho scoperto questa cosa e risolto molti dei problemi; dopo le mille prove fatte per capire cosa succedeva, chiarita la causa mi son scordato nel codice un CPUDIV2 che, appunto, mi divideva il clock per 3, da cui l'errore del timer ![]() ![]() Grazie a tutti!
__________________ ....... |
![]() | ![]() |
Bookmarks |
| |
![]() | ||||
Discussione | Autore discussione | Forum | Commenti | Ultimo Commento |
problema!!!!!!! | gaetanux | Elimodellismo Principianti | 5 | 17 dicembre 09 09:05 |
problema | erapox | Aeromodellismo Principianti | 0 | 21 aprile 08 19:10 |
Problema O.S 15 | daltanius85 | Aeromodellismo Principianti | 3 | 26 marzo 08 11:28 |
problema os 32 | marcolo | Elimodellismo in Generale | 6 | 22 ottobre 07 16:44 |
problema li-po | alex92005 | Batterie e Caricabatterie | 0 | 04 dicembre 06 19:03 |