Dag allemaal,

Wil iemand mij helpen met schrijven van een programma voor looplicht met 16f871 in assambly of C

In totaal 8 uitgangen
Ritme wordt aangestuurd door een puls van 1 tot 5Khz ,dus puls moet door 1000 gedeelt worden en de richting word aangegeven door een ander pen bij 1 rechts om en bij 0 links om

Met vriendelijke groet,

[Bericht gewijzigd door d.demirel op ]

Jammer dat niemand nog gereageerd heeft!

Ik kan je helaas niet helpen met het software gedeelte maar hardware wel.

Wat ik eventueel wel voor je kan betekenen is basic voor de atmel.

Ik heb al redelijk wat ervaring met de AT90S2313 en daarmee is dit wat jij wil denk ik ook wel mogelijk.

Hardware is er al, dus ik heb geen ander keuze dan 16f871

toch bedankt,

[Bericht gewijzigd door d.demirel op ]

had het PHP scripting geweest :p dan no problem maar nadat ik alle PHP-functies kan ga ik aan de C-talen beginnen te leren.
Anders wou ik je graag helpen.:)

Het probleem wat je voorlegt is wel heel erg basic. Waar heb je het voor nodig? Opdracht voor school?

Wat je moet doen is de poort inlezen, delen door 1000, shift operatie toepassen, wegschrijven naar een poort. Dat zijn allemaal heel simpele operaties die je in elke manual van C of assembly zelf zou moeten kunnen vinden.

Daniel

Het is niet voor school, maar ik ben geen held in programmeren en dan word het wel een probleem.

PHP is voor websites.
Voor C++ kan ik u een inleidende tutorial geven (Engelstalig)

Alle hulp is welcom, alvast bedankt

[cynical]

Waarom zou je zelf een looplichtje gaan bouwen uit een microcontroller, als je niet eens een poging waagt zelf uit te zoeken hoe je 'm moet programmeren? Koop dan gewoon een velleman kitje of zo.

[/cynical]

Kijk eens op de website van Wouter van Ooien (www.voti.nl). Hij heeft de hogere programmeertaal JAL ontwikkeld, welke redelijk makkelijk te doorgronden moet zijn met een beetje kennis van microcontrollers en programmeren in het algemeen. En er staat een aantal voorbeelden op, o.a. in JAL. Compiler is ook te vinden op die site.

Daniel

Erm, ik snap je punt niet helemaal, waarom zou je een looplicht met een PIC willen maken? Juist de enige reden is omdat het een goede oefening is. Anders kan je wel een 4017 of soortgelijk gebruiken. Waarom probeer je het niet zelf? Kan weinig mis gaan toch? Ik kan een hint geven in C


for(;;)
{
while(!RA0) {} // wacht tot RA0 een puls krijgt
PORTB = PORTB << 1; // bitshift protb
if(CARRY) // option & 2
RB0 = 1; // volgende led in reeks
}

Zoiets komt in de main van je C code te staan. Kan je makkelijk uitbreiden. ASM lijkt me hier ook niet heel lastig. Voor goede C tutorials zoek op google

Het is uiteindelijk geen looplicht, het ging mij om een begin te hebben met een functie van puls binnen halen en deze tellen en om de 1000 keer 1 plaat van de 8 uitgangen te schuiven

Het wordt uiteindelijk vrij complex geheel, maar mij lukt het niet om die pulzen op rb4 of rb5 ( interupt-on-change pin) binnen te halen

En nu heb ik ook een doel nauw uiteindelijk echt iets te maken met de PIC controller en C

Inderdaad is met conventioneel elektronica ook te realiseren maar het gaat mij om eendelijk te leren om gaan met PIC en C .

Groetjes Durmus,

Als het met die interupts niet werkt, zou je moeten beginnen zonder die interrupts. Gewoon continu die pinnen checken, en als er iets verandert in de status je gewenst actie uitvoeren. Als je code niet in een keer werkt moet je proberen het stap voor stap in 'hapklare' brokken te schrijven.
Werken met interrupts kan namelijk best verwarrend zijn, en is lang niet altijd nodig.

Daniel

Als je wilt werken met interrupts hangt het van de C compiler af. Bij HI-Tech Picc gaat het zo ongeveer

void interrupt i_handler(void) {
// check welk interrupt het was
}

waar dan moet je eerst de interrupts op zetten. De ingewikkeldheid valt opzich wel mee, het is gewoon de datasheet goed lezen. Succes!